一、Vue框架概述與MVVM設(shè)計模式

Vue.js是一個漸進式的基于MVVM設(shè)計模式的純前端javascript框架。

適用于以數(shù)據(jù)增刪改查操作為主的項目。

中文官網(wǎng):https://cn.vuejs.org/

優(yōu)點:(1)漸進式:不要求整個項目都用Vue做,可以和個別技術(shù)混搭;

? ? ? ? ? ?(2)純前端js框架:與nodejs無關(guān)!單靠瀏覽器就可以運行;

? ? ? ? ? ?(3)便于大項目的開發(fā),避免重復編碼,提高開發(fā)效率。

使用:(1)直接下載,并使用script引入vue.js文件;

? ? ? ? ? ?(2)使用Vue-Cli腳手架工具。


MVVM設(shè)計模式是對前端三大部分代碼的重新劃分。

原理:訪問器屬性+觀察者模式+虛擬Dom樹

(1)View——界面/視圖

包括傳統(tǒng)的HTML+CSS,增強了HTML的功能:

比如:HTML中可以寫變量,js表達式,分支和循環(huán)等程序。

(2)Model——模型

程序中創(chuàng)建的或從服務端獲取的數(shù)據(jù),一般用JS中的一個對象來保存。

模型對象中保存著一個頁面所需要的所有變量。

(3)ViewModel——視圖模型

替代手寫的Dom/Jquery操作,把模型中的數(shù)據(jù)和界面中的HTML元素 “綁定” 在一起。

可讓頁面元素內(nèi)容和js程序中的數(shù)據(jù)聯(lián)動變化,自動同步數(shù)據(jù)和頁面元素。


Tips:

(1)定義界面的時候,整個界面只能包含在一個統(tǒng)一的父元素下。

????????<div id="app">......</div>

(2)new Vue ( ) 將 data{ } 對象引入new Vue ( ) 中,并打散 data { } 對象,使 data { } 對象中的每個屬性都變?yōu)閱为毜膶傩?,直接隸屬于 new Vue( ) 對象下。

(3)new Vue ( ) 將 methods{ } 對象引入new Vue ( ) 中,并打散 methods { } 對象,使?methods { } 對象中的方法/函數(shù)直接隸屬于 new Vue( ) 對象下。

(4)methods { } 對象中的方法/函數(shù)和?data { } 對象中的每個屬性屬于平級,所以,在methods的方法中,可以直接用 "this.屬性名" 去操作data中的屬性。

(5)虛擬Dom樹(Virtaul Dom)

只保存可能變化的節(jié)點的簡化版Dom樹。

new Vue( ) 時,vue對象通過掃描真實的Dom樹,只將可能變化的元素保存到虛擬Dom樹上。

當收到變量改變的通知時,vue會快速遍歷虛擬Dom樹,找到受影響的元素,調(diào)用已經(jīng)封裝好的Dom函數(shù),只更新頁面中受影響的元素,不受影響的元素,不會改變。

優(yōu)點:a.小,僅保存可能變化的元素,遍歷快,查找快!

? ? ? ? ? ?b.只更新受影響的元素,效率高!

? ? ? ? ? ?c.已經(jīng)封裝了Dom操作,自動修改頁面,避免大量重復的Dom操作。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容