1. 程式人生 > >Vue.js 面試 知識點整理

Vue.js 面試 知識點整理

vue.js的特點?

簡潔:頁面由HTML模板+Json資料+Vue例項組成資料驅動:自動計算屬性和追蹤依賴的模板表示式元件化:用可複用、解耦的元件來構造頁面輕量:程式碼量小,不依賴其他庫快速:精確有效批量DOM更新模板友好:可通過npm,bower等多種方式安裝,很容易融入

一、什麼是MVVM?

MVVM是Model-View-ViewModel的縮寫。MVVM是一種設計思想。Model 層代表資料模型,也可以在Model中定義資料修改和操作的業務邏輯;View 代表UI 元件,它負責將資料模型轉化成UI 展現出來,ViewModel 是一個同步View 和 Model的物件。

在MVVM架構下,View 和 Model 之間並沒有直接的聯絡,而是通過ViewModel進行互動,Model 和 ViewModel 之間的互動是雙向的, 因此View 資料的變化會同步到Model中,而Model 資料的變化也會立即反應到View 上。

ViewModel 是view的核心,它是view的一個例項。通過雙向資料繫結把 View 層和 Model 層連線了起來,而View 和 Model 之間的同步工作完全是自動的,無需人為干涉,因此開發者只需關注業務邏輯,不需要手動操作DOM, 不需要關注資料狀態的同步問題,複雜的資料狀態維護完全由 MVVM 來統一管理。

二、mvvm和mvc區別?它和其它框架(jquery)的區別是什麼?哪些場景適合?

mvc和mvvm其實區別並不大。都是一種設計思想。主要就是mvc中Controller演變成mvvm中的viewModel。mvvm主要解決了mvc中大量的DOM 操作使頁面渲染效能降低,載入速度變慢,影響使用者體驗。

區別:vue資料驅動,通過資料來顯示檢視層而不是節點操作。 場景:資料操作比較多的場景,更加便捷

三、vue的優點是什麼?

  • 低耦合。檢視(View)可以獨立於Model變化和修改,一個ViewModel可以繫結到不同的"View"上,當View變化的時候Model可以不變,當Model變化的時候View也可以不變。
  • 可重用性。你可以把一些檢視邏輯放在一個ViewModel裡面,讓很多view重用這段檢視邏輯。
  • 獨立開發。開發人員可以專注於業務邏輯和資料的開發(ViewModel),設計人員可以專注於頁面設計。
  • 可測試。介面素來是比較難於測試的,而現在測試可以針對ViewModel來寫。

四、 元件之間的傳值?

  • 父元件與子元件傳值 父元件通過標籤上面定義傳值 子元件通過props方法接受資料
  • 子元件向父元件傳遞資料 子元件通過$emit方法傳遞引數

五、路由之間跳轉

宣告式(標籤跳轉) 程式設計式( js跳轉)

六、vue.cli中怎樣使用自定義的元件?有遇到過哪些問題嗎?

  • 第一步:在components目錄新建你的元件檔案(indexPage.vue),script一定要export default {}
  • 第二步:在需要用的頁面(元件)中匯入:import indexPage from '@/components/indexPage.vue'
  • 第三步:注入到vue的子元件的components屬性上面,components:{indexPage}
  • 第四步:在template檢視view中使用, 例如有indexPage命名,使用的時候則index-page

七、Vue中引入元件的步驟?

1)採用ES6的import ... from ...語法或CommonJS的require()方法引入元件 2)對元件進行註冊,程式碼如下

3)使用元件<my-component></my-component>

八、在Vue中使用外掛的步驟

  • 採用ES6的import ... from ...語法或CommonJSd的require()方法引入外掛
  • 使用全域性方法Vue.use( plugin )使用外掛,可以傳入一個選項物件Vue.use(MyPlugin, { someOption: true })