要招一個會vue的開發者:
-
作為面試官的你,你還會每次都只是問這些老土的問題嗎?
- 你對MVVM的理解是什么?
- 你知道什么是雙向綁定嗎?你了解它的原理嗎?
- 說說vue的生命周期有哪些?
- 組件通訊有哪些?
- 你用過vuex嗎?
- ...
-
作為面試者的你,在網上搜索下“vue面試題及答案”,看完后你是不是覺得:
- 自己掌握了武林秘籍?
- 能忽悠住面試官了?
- 我熟練掌握vue了?
記一次印象深刻的面試
面試過很多小伙伴(要招會vue的開發者),沒工作經驗的,5年工作經驗的,甚至10多年工作經驗的...讓我印象最深,也覺得最為經典的一個面試:
-
有一天,來了一位5年前端工作經驗的小伙子,在很多項目中使用過vue的面試者,故事就從這里開始了:
-
(開篇省略N多對話……)
-
我:看你簡歷上說你在項目中有用到過vue對嗎?
-
小伙子:有啊,我們項目中就有用到過……
-
我:你認為你對vue的理解到什么程度?(對自我的認知)
-
小伙子:做過很多項目,基本上都了解了,很熟練
-
我:不錯,那我問下你 “vue為什么要求組件模板只能有一個根元素?”
-
小伙子:恩……沒在意過
-
我:沒關系,那 “你了解vue的diff算法嗎?”
-
小伙子:恩……沒用到過
-
我:沒事,那我再問下你,“在.vue文件中style是必須的嗎?那script是必須的嗎?為什么?”
-
小伙子:恩……(此時小伙子有點着急了,說)
-
小伙子:你為何 不按套路提問 呢?你應該這樣問我:MVVM是什么,生命周期有哪些,雙向綁定的原理啊,我對這些比較熟悉。
-
我:此時的我,被反問給愣住了(難道是我錯了嗎?我是農村來的不懂套路,還好我經歷過風風雨雨,假裝鎮定下)。
-
我:這樣啊,你給我說下,生命周期的原理是什么?
-
小伙子:……
-
我:要你自己實現一個雙向綁定的微型框架你該怎么做呢?
-
小伙子:……
-
(繼續省略N多對話……)
-
小伙子走前,跟我說了句:哥,我以后不敢再說我會vue了,回去我要再好好學習vue……
-
后話:估計小伙子出門后,肯定會千萬個吐槽:面試造火箭工作擰螺絲
30多位小伙伴傾力貢獻
- 看到網上vue相關的題量都非常少,完全不能滿足大家對知識的渴望。所以我聯系了30多位真正使用過vue,從各個方面篩選出了220個vue相關的知識點,全方面為你保駕護航!這些知識點還會持續更新……
- 目前vue相關的知識點收錄量為全網(全球)第一
- 收錄在了《前端面試每日3+1》的vue面試題
還有疑問?
- 問:這些題有答案嗎?
- 答:有,在你腦中!授人以魚不如授人以漁(只有自己動手去做,去思考才會變成你的答案,理解背后的原理才能做到游刃有余,不要去背,分分鍾露餡!)
- 問:知識點會過期嗎?
- 答:會,但沒這么快,活到老學到老,框架經常更新,知識點就會持續更新
- 問:這么多知識點我該怎么學?
- 答:先挑些你會的,找點成就感,然后再查漏補缺,堅持每天學習
有更好的建議嗎?
- 勤思考
- 多動手
- 善總結
對了打個廣告
- 《前端面試每日3+1》,學習不打烊,充電加油只為遇到更好的自己,365天無節假日,每天早上5點純手工發布面試題(死磕自己,愉悅大家)。
- 希望大家在這浮誇的前端圈里,保持冷靜,堅持每天花20分鍾來學習與思考。
- 在這千變萬化,類庫層出不窮的前端,建議大家不要等到找工作時,才狂刷題,提倡每日學習!(不忘初心,html、css、javascript才是基石!)
超多題預警開始……
題目最后更新時間:2019.07.02
vue | vue-cli | vue-router | vuex | ElementUI | ElementUI | mint-ui
如果你覺得這些題太easy了,可以到github上聯系作者貢獻你覺得好玩、有趣、有挑戰性的題讓大家來挑戰吧。
vue
- 你知道vue的模板語法用的是哪個web模板引擎的嗎?說說你對這模板引擎的理解
- 你知道v-model的原理嗎?說說看
- 你有使用過vue開發多語言項目嗎?說說你的做法?
- 在使用計算屬性的時,函數名和data數據源中的數據可以同名嗎?
- vue中data的屬性可以和methods中的方法同名嗎?為什么?
- 怎么給vue定義全局的方法?
- vue2.0不再支持v-html中使用過濾器了怎么辦?
- 怎么解決vue打包后靜態資源圖片失效的問題?
- 怎么解決vue動態設置img的src不生效的問題?
- 使用vue后怎么針對搜索引擎做SEO優化?
- 跟keep-alive有關的生命周期是哪些?描述下這些生命周期
- 如果現在讓你從vue/react/angularjs三個中選擇一個,你會選哪個?說說你的理由
- 你知道vue2.0兼容IE哪個版本以上嗎?
- 使用vue開發一個todo小應用,談下你的思路
- 你有看過vue推薦的風格指南嗎?列舉出你知道的幾條
- 你是從vue哪個版本開始用的?你知道1.x和2.x有什么區別嗎?
- 你知道vue中key的原理嗎?說說你對它的理解
- vue中怎么重置data?
- vue渲染模板時怎么保留模板中的HTML注釋呢?
- Vue.observable你有了解過嗎?說說看
- 你知道style加scoped屬性的用途和原理嗎?
- 你期待vue3.0有什么功能或者改進的地方?
- vue邊界情況有哪些?
- 如何在子組件中訪問父組件的實例?
- watch的屬性用箭頭函數定義結果會怎么樣?
- 在vue項目中如果methods的方法用箭頭函數定義結果會怎么樣?
- 在vue項目中如何配置favicon?
- 你有使用過babel-polyfill模塊嗎?主要是用來做什么的?
- 說說你對vue的錯誤處理的了解?
- 在vue事件中傳入$event,使用e.target和e.currentTarget有什么區別?
- 在.vue文件中style是必須的嗎?那script是必須的嗎?為什么?
- vue怎么實現強制刷新組件?
- vue自定義事件中父組件怎么接收子組件的多個參數?
- 實際工作中,你總結的vue最佳實踐有哪些?
- vue給組件綁定自定義事件無效怎么解決?
- vue的屬性名稱與method的方法名稱一樣時會發生什么問題?
- vue變量名如果以_、$開頭的屬性會發生什么問題?怎么訪問到它們的值?
- vue使用v-for遍歷對象時,是按什么順序遍歷的?如何保證順序?
- vue如果想擴展某個現有的組件時,怎么做呢?
- 說下
listeners的使用場景
- 分析下vue項目本地開發完成后部署到服務器后報404是什么原因呢?
- v-once的使用場景有哪些?
- 說說你對vue的表單修飾符.lazy的理解
- vue為什么要求組件模板只能有一個根元素?
- EventBus注冊在全局上時,路由切換時會重復觸發事件,如何解決呢?
- 怎么修改vue打包后生成文件路徑?
- 你有使用做過vue與原生app交互嗎?說說vue與ap交互的方法
- 使用vue寫一個tab切換
- vue中什么是遞歸組件?舉個例子說明下?
- 怎么訪問到子組件的實例或者子元素?
- 在子組件中怎么訪問到父組件的實例?
- 在組件中怎么訪問到根實例?
- 說說你對Object.defineProperty的理解
- vue組件里寫的原生addEventListeners監聽事件,要手動去銷毀嗎?為什么?
- vue組件里的定時器要怎么銷毀?
- vue組件會在什么時候下被銷毀?
- 使用vue渲染大量數據時應該怎么優化?說下你的思路!
- 在vue中使用this應該注意哪些問題?
- 你有使用過JSX嗎?說說你對JSX的理解
- 說說組件的命名規范
- 怎么配置使vue2.0+支持TypeScript寫法?
<template></template>
有什么用?- vue的is這個特性你有用過嗎?主要用在哪些方面?
- vue的:class和:style有幾種表示方式?
- 你了解什么是函數式組件嗎?
- vue怎么改變插入模板的分隔符?
- 組件中寫name選項有什么作用?
- 說說你對provide和inject的理解
- 開發過程中有使用過devtools嗎?
- 說說你對slot的理解有多少?slot使用場景有哪些?
- 你有使用過動態組件嗎?說說你對它的理解
- prop驗證的type類型有哪幾種?
- prop是怎么做驗證的?可以設置默認值嗎?
- 怎么緩存當前打開的路由組件,緩存后想更新當前組件怎么辦呢?
- 說說你對vue組件的設計原則的理解
- 你了解vue的diff算法嗎?
- vue如何優化首頁的加載速度?
- vue打包成最終的文件有哪些?
- ajax、fetch、axios這三都有什么區別?
- vue能監聽到數組變化的方法有哪些?為什么這些方法能監聽到呢?
- vue中是如何使用event對象的?
- vue首頁白屏是什么問題引起的?如何解決呢?
- 說說你對單向數據流和雙向數據流的理解
- 移動端ui你用的是哪個ui庫?有遇到過什么問題嗎?
- 你知道nextTick的原理嗎?
- 說說你對v-clock和v-pre指令的理解
- 寫出你知道的表單修飾符和事件修飾符
- 說說你對proxy的理解
- 你有自己用vue寫過UI組件庫嗎?
- 用vue怎么實現一個換膚的功能?
- 有在vue中使用過echarts嗎?踩過哪些坑?如何解決的?
- 如果讓你教一個2-3年經驗前端經驗的同事使用vue,你該怎么教?
- vue性能的優化的方法有哪些?
- SSR解決了什么問題?有做過SSR嗎?你是怎么做的?
- 說說你覺得認為的vue開發規范有哪些?
- vue部署上線前需要做哪些准備工作?
- vue過渡動畫實現的方式有哪些?
- vue在created和mounted這兩個生命周期中請求數據有什么區別呢?
- vue父子組件雙向綁定的方法有哪些?
- vue怎么獲取DOM節點?
- vue項目有做過單元測試嗎?
- vue項目有使用過npm run build --report嗎?
- 如何解決vue打包vendor過大的問題?
- webpack打包vue速度太慢怎么辦?
- vue在開發過程中要同時跟N個不同的后端人員聯調接口(請求的url不一樣)時你該怎么辦?
- vue要做權限管理該怎么做?如果控制到按鈕級別的權限怎么做?
- 說下你的vue項目的目錄結構,如果是大型項目你該怎么划分結構和划分組件呢?
- 在移動端使用vue,你覺得最佳實踐有哪些?
- 你們項目為什么會選vue而不選擇其它的框架呢?
- 對於即將到來的vue3.0特性你有什么了解的嗎?
- vue開發過程中你有使用什么輔助工具嗎?
- vue和微信小程序寫法上有什么區別?
- 怎么緩存當前的組件?緩存后怎么更新?
- 你了解什么是高階組件嗎?可否舉個例子說明下?
- 為什么我們寫組件的時候可以寫在.vue里呢?可以是別的文件名后綴嗎?
- vue-loader是什么?它有什么作用?
- 說說你對vue的extend(構造器)的理解,它主要是用來做什么的?
- 如果將axios異步請求同步化處理?
- 怎么捕獲組件vue的錯誤信息?
- 為什么vue使用異步更新組件?
- 如何實現一個虛擬DOM?說說你的思路
- 寫出多種定義組件模板的方法
- SPA單頁面的實現方式有哪些?
- 說說你對SPA單頁面的理解,它的優缺點分別是什么?
- 說說你都用vue做過哪些類型的項目?
- 在vue項目中如何引入第三方庫(比如jQuery)?有哪些方法可以做到?
- 使用vue手寫一個過濾器
- 你有使用過render函數嗎?有什么好處?
- 寫出你常用的指令有哪些?
- 手寫一個自定義指令及寫出如何調用
- 組件進來請求接口時你是放在哪個生命周期?為什么?
- 你有用過事件總線(EventBus)嗎?說說你的理解
- 說說vue的優缺點分別是什么?
- DOM渲染在哪個周期中就已經完成了?
- 第一次加載頁面時會觸發哪幾個鈎子?
- vue生命周期總共有幾個階段?
- vue生命周期的作用是什么?
- vue和angular有什么區別呢?
- 如何引入scss?引入后如何使用?
- 使用vue開發過程你是怎么做接口管理的?
- 為何官方推薦使用axios而不用vue-resource?
- 你了解axios的原理嗎?有看過它的源碼嗎?
- 你有封裝過axios嗎?主要是封裝哪方面的?
- 如何中斷axios的請求?
- axios是什么?怎樣使用它?怎么解決跨域的問題?
- 說說你對vue的template編譯的理解?
- v-on可以綁定多個方法嗎?
- vue常用的修飾符有哪些?列舉並說明
- 你認為vue的核心是什么?
- v-model是什么?有什么用呢?
- 說說你對vue的mixin的理解,有什么應用場景?
- SPA首屏加載速度慢的怎么解決?
- 刪除數組用delete和Vue.delete有什么區別?
- 動態給vue的data添加一個新的屬性時會發生什么?怎樣解決?
- 組件和插件有什么區別?
- 說說你使用vue過程中遇到的問題(坑)有哪些,你是怎么解決的?
- 說說你對選項el,template,render的理解
- vue實例掛載的過程是什么?
- vue在組件中引入插件的方法有哪些?
- v-if和v-for的優先級是什么?如果這兩個同時出現時,那應該怎么優化才能得到更好的性能?
- 分別說說vue能監聽到數組或對象變化的場景,還有哪些場景是監聽不到的?無法監聽時有什么解決方案?
- $nextTick有什么作用?
- 為什么data屬性必須聲明為返回一個初始數據對應的函數呢?
- 怎么在watch監聽開始之后立即被調用?
- watch怎么深度監聽對象變化?
- watch和計算屬性有什么區別?
- vue如何監聽鍵盤事件?
- v-for循環中key有什么作用?
- 怎么在vue中使用插件?
- 你有寫過自定義組件嗎?
- 說說你對keep-alive的理解是什么?
- 怎么使css樣式只在當前組件中生效?
- 你有看過vue的源碼嗎?如果有那就說說看
- 你有寫過自定義指令嗎?自定義指令的生命周期(鈎子函數)有哪些?
- v-show和v-if有什么區別?使用場景分別是什么?
- 說說你對MVC、MVP、MVVM模式的理解
- 說下你對指令的理解?
- 請描述下vue的生命周期是什么?
- vue組件之間的通信都有哪些?
- 什么是虛擬DOM?
- 什么是雙向綁定?原理是什么?
- vue和react有什么不同?使用場景是什么?
- 說說vue的優缺點
- 有使用過vue嗎?說說你對vue的理解
vue-cli
- vue-cli提供了的哪幾種腳手架模板?
- vue-cli工程中常用的npm命令有哪些?
- 在使用vue-cli開發vue項目時,自動刷新頁面的原理你了解嗎?
- vue-cli3插件有寫過嗎?怎么寫一個代碼生成插件?
- vue-cli生成的項目可以使用es6、es7的語法嗎?為什么?
- vue-cli怎么解決跨域的問題?
- vue-cli中你經常的加載器有哪些?
- 你知道什么是腳手架嗎?
- 說下你了解的vue-cli原理?你可以自己實現個類vue-cli嗎?
- 怎么使用vue-cli3創建一個項目?
- vue-cli3你有使用過嗎?它和2.x版本有什么區別?
- vue-cli默認是單頁面的,那要弄成多頁面該怎么辦呢?
- 不用vue-cli,你自己有搭建過vue的開發環境嗎?流程是什么?
vue-router
- vue-router怎么重定向頁面?
- vue-router怎么配置404頁面?
- 切換路由時,需要保存草稿的功能,怎么實現呢?
- vue-router路由有幾種模式?說說它們的區別?
- vue-router有哪幾種導航鈎子( 導航守衛 )?
- 說說你對router-link的了解
- vue-router如何響應路由參數的變化?
- 你有看過vue-router的源碼嗎?說說看
- 切換到新路由時,頁面要滾動到頂部或保持原先的滾動位置怎么做呢?
- 在什么場景下會用到嵌套路由?
- 如何獲取路由傳過來的參數?
- 說說active-class是哪個組件的屬性?
- 在vue組件中怎么獲取到當前的路由信息?
- vur-router怎么重定向?
- 怎樣動態加載路由?
- 怎么實現路由懶加載呢?
- 如果讓你從零開始寫一個vue路由,說說你的思路
- 說說vue-router完整的導航解析流程是什么?
- 路由之間是怎么跳轉的?有哪些方式?
- 如果vue-router使用history模式,部署時要注意什么?
- route和router有什么區別?
- vue-router鈎子函數有哪些?都有哪些參數?
- vue-router是用來做什么的?它有哪些組件?
vuex
- 你有寫過vuex中store的插件嗎?
- 你有使用過vuex的module嗎?主要是在什么場景下使用?
- vuex中actions和mutations有什么區別?
- vuex使用actions時不支持多參數傳遞怎么辦?
- 你覺得vuex有什么缺點?
- 你覺得要是不用vuex的話會帶來哪些問題?
- vuex怎么知道state是通過mutation修改還是外部直接修改的?
- 請求數據是寫在組件的methods中還是在vuex的action中?
- 怎么監聽vuex數據的變化?
- vuex的action和mutation的特性是什么?有什么區別?
- 頁面刷新后vuex的state數據丟失怎么解決?
- vuex的state、getter、mutation、action、module特性分別是什么?
- vuex的store有幾個屬性值?分別講講它們的作用是什么?
- 你理解的vuex是什么呢?哪些場景會用到?不用會有問題嗎?有哪些特性?
- 使用vuex的優勢是什么?
- 有用過vuex嗎?它主要解決的是什么問題?推薦在哪些場景用?
ElementUI
- ElementUI是怎么做表單驗證的?在循環里對每個input驗證怎么做呢?
- 你有二次封裝過ElementUI組件嗎?
- ElementUI怎么修改組件的默認樣式?
- ElementUI的穿梭組件如果數據量大會變卡怎么解決不卡的問題呢?
- ElementUI表格組件如何實現動態表頭?
- ElementUI使用表格組件時有遇到過問題嗎?
- 有閱讀過ElementUI的源碼嗎?
- 項目中有使用過ElementUI嗎?有遇到過哪些問題?它的使用場景主要是哪些?
- 有用過哪些vue的ui?說說它們的優缺點?
mint-ui
作者:浪子神劍
鏈接:https://www.jianshu.com/p/5f9cef0bfa51
來源:簡書
簡書著作權歸作者所有,任何形式的轉載都請聯系作者獲得授權並注明出處。