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