Vue 面試題 2021-01-10


MVVM模式的理解

MVVM是Model-View-ModelView的縮寫

模型-視圖-視圖模型。

【模型】指的是后端傳遞的數據。

【視圖】指的是所看到的頁面。

【視圖模型】mvvm模式的核心,它是連接view和model的橋梁。

它有兩個方向:

一是將【模型】轉化成【視圖】,即將后端傳遞的數據轉化成所看到的頁面。實現的方式是:數據綁定。

二是將【視圖】轉化成【模型】,即將所看到的頁面轉化成后端的數據。

實現的方式是:DOM 事件監聽。這兩個方向都實現的,我們稱之為數據的雙向綁定

總結:在MVVM的框架下視圖和模型是不能直接通信的。它們通過ViewModel來通信,ViewModel通常要實現一個observer觀察者,當數據發生變化,ViewModel能夠監聽到數據的這種變化,然后通知到對應的視圖做自動更新,而當用戶操作視圖,ViewModel也能監聽到視圖的變化,然后通知數據做改動,這實際上就實現了數據的雙向綁定。並且MVVM中的View 和 ViewModel可以互相通信。

                                                                      

為什么會有MVVM框架

數據和視圖更密切的關聯

組件 父傳子  子傳父的數據傳遞

例子 當我們切換頁面時  每個頁面的數據不同  需要進行分類  ,這時候可以加提煉公共的方法,寫成一個子組件  

通過父組件把數據傳遞給子組件  子組件獲取之后可以進行調用數據 進行分類  把符合自己定義的條件的數據分好類在從子組件傳輸給父組件

 

路由實現原理

通過 改變URL,在不重新請求頁面的情況下

 

路由:hash和history

hash:地址欄中的從#開始到的到結尾的值

hash的特點:雖然會出現在URL地址中,但是不會被包括在Http請求中,對后端完全沒有影響,因此改變hash不會重新加載頁面

例子:http://160.238.86.82:8003/ #/index

history :history 中新增的pushState()和replaceState()

pushState()方法用於歷史中添加一條記錄

replaceState()方法用來修改history對象的當前記錄

history 模式,去除了#,這種模式充分利用 history.pushState API 來完成 URL 跳轉而無須重新加載頁面。

 

vue與react和angular的區別

vue.js更輕量,壓縮后大小20kb

vue吸收兩家之長,借用了angular的指令和react的組件化

                      

 

keep-alive 是Vue內置的一個組件,用來緩存組件,避免多次加載相應的組件,減少性能消耗

使用場景需要頻繁切換路由,這個時候可以考慮keep-alive

 

 

vue.cli項目中src目錄每個文件夾和文件的用法?
答:assets文件夾是放靜態資源;components是放組件;router是定義路由相關的配置; app.vue是一個應用主組件;main.js是入口文件。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM