關於Vue.js面試題匯總

1、vue與react的對比,如何選型?從性能,生態圈,數據量,數據的傳遞上,作比較

(1)React 和 Vue 有許多相似之處,它們都有:

使用 Virtual DOM

提供了響應式(Reactive)和組件化(Composable)的視圖組件。

將注意力集中保持在核心庫,伴隨於此,有配套的路由和負責處理全局狀態管理的庫。

(2)性能:

到目前為止,針對現實情況的測試中,Vue 的性能是優於 React 的。

(3)生態圈

Vue.js: ES6+Webpack+unit/e2e+Vue+vue-router+單文件組件+vuex+iVew

React: ES6+Webpack+Enzyme+React+React-router+Redux

(4)什麼時候選擇Vue.js

如果你喜歡用(或希望能夠用)模板搭建應用,請使用Vue

如果你喜歡簡單和「能用就行」的東西,請使用Vue

如果你的應用需要儘可能的小和快,請使用Vue

如果你計劃構建一個大型應用程序,請使用React

如果你想要一個同時適用於Web端和原生App的框架,請選擇React

如果你想要最大的生態圈,請使用React

詳細參考:

對比其他框架 — Vue.js?

cn.vuejs.org圖標React 還是 Vue: 你應該選擇哪一個Web前端框架??

blog.csdn.net圖標

2、vue slot是做什麼的?

簡單來說,假如父組件需要在子組件內放一些DOM,那麼這些DOM是顯示、不顯示、在哪個地方顯示、如何顯示,就是slot分發負責的活。

詳細參考:

組件 — Vue.js?

cn.vuejs.org圖標

3、vue和angular的優缺點以及適用場合?

參見:《 在選擇框架的時候要從哪方面入手》一題

4、vue路由實現原理?

以官方倉庫下 examples/basic 基礎例子來一點點具體分析整個流程。

和流程相關的主要需要關注點的就是 components 、 history 目錄以及 create-matcher.js 、 create-route-map.js、index.js 、 install.js。

從入口,作為插件,實例化 VueRouter,實例化 History,實例化 Vue,defineReactive 定義 _route,router-link 和 router-view 組件等幾個方面展開分析

詳細參見:

vue-router 源碼分析-整體流程?

www.tuicool.com圖標

5、你們vue項目是打包了一個js文件,一個css文件,還是有多個文件?

根據vue-cli腳手架規範,一個js文件,一個CSS文件。

詳細參見:

Vue2.0 框架配置:vue-cli + vue-router + vuex?

blog.csdn.net圖標DDFE:vue-cli#2.0 webpack 配置分析?

zhuanlan.zhihu.com圖標

6、vue遇到的坑,如何解決的?

Vue1.0升級2.0有很多坑: 生命周期;路由中引入靜態js,全局組件,全局變數,全局function;v-for循環的key,value值互換了位置,還有track-by;filter過濾器;遍曆數組時,key值不能做model;父子通信等。

詳細參見:

vue2.0開發過程中踩的坑! - CSDN博客?

blog.csdn.net

人類身份驗證 - SegmentFault?

segmentfault.com

vuejs前端開發的一些小坑 - 推酷?

www.tuicool.com圖標

7、vue的雙向綁定的原理,和angular的對比

在不同的 MVVM 框架中,實現雙向數據綁定的技術有所不同。

AngularJS 採用「臟值檢測」的方式,數據發生變更後,對於所有的數據和視圖的綁定關係進行一次檢測,識別是否有數據發生了改變,有變化進行處理,可能進一步引發其他數據的改變,所以這個過程可能會循環幾次,一直到不再有數據變化發生後,將變更的數據發送到視圖,更新頁面展現。如果是手動對 ViewModel 的數據進行變更,為確保變更同步到視圖,需要手動觸發一次「臟值檢測」。

VueJS 則使用 ES5 提供的 Object.defineProperty() 方法,監控對數據的操作,從而可以自動觸發數據同步。並且,由於是在不同的數據上觸發同步,可以精確的將變更發送給綁定的視圖,而不是對所有的數據都執行一次檢測。

詳細參見:

Vue 雙向數據綁定原理分析?

www.jianshu.com

8、vue-cli,腳手架

安裝:$ npm install -g vue-cli

使用:$ vue init <template-name> <project-name>

webpack配置詳解:

DDFE:vue-cli#2.0 webpack 配置分析?

zhuanlan.zhihu.com圖標

9、Vue裡面router-link在電腦上有用,在安卓上沒反應怎麼解決?

Vue路由在Android機上有問題,babel問題,安裝babel polypill 插件解決。

推薦閱讀:

vue 中鉤子 是怎樣的一個概念?
vue生命周期鉤子該怎麼用?

TAG:Vuejs | 前端開發 | 前端開發入門 |