Cool前端:關於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

Cool前端:關於Vue.js面試常見問題及答案

2、vue slot是做什麼的?

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

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組件等幾個方面展開分析

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

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

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

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

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

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

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

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

8、vue-cli,腳手架

安裝:$ npm install -g vue-cli

使用:$ vue init

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

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


分享到:


相關文章: