您好,登錄后才能下訂單哦!
這篇“VUE實(shí)例參數(shù)與MVVM模式知識點(diǎn)有哪些”文章的知識點(diǎn)大部分人都不太理解,所以小編給大家總結(jié)了以下內(nèi)容,內(nèi)容詳細(xì),步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“VUE實(shí)例參數(shù)與MVVM模式知識點(diǎn)有哪些”文章吧。
實(shí)例化一個Vue對象,參數(shù)是一個選項對象,下面將會對其中包含的選項做些簡單的說明。
new Vue({ options})
在Vue實(shí)例中可以通過this.$options
查看實(shí)例的配置項
選項 | 說明 |
---|---|
data | 聲明需要響應(yīng)式綁定的數(shù)據(jù)對象 |
props | 接收來自父組件的數(shù)據(jù) |
propsData | 創(chuàng)建實(shí)例時手動傳遞props,方便測試props |
computed | 用于聲明計算屬性 |
methods | 用于定義Vue實(shí)例的方法 |
watch | 偵聽屬性,監(jiān)控 Vue 實(shí)例上的數(shù)據(jù)變動,并調(diào)用其回調(diào)函數(shù) |
選項 | 說明 |
---|---|
el | 聲明Vue根組件的掛載點(diǎn)(根組件特有) |
template | 用于掛載元素的字符串模板 |
render | 渲染函數(shù),用于創(chuàng)建虛擬DOM,是字符串模板的替代方案 |
renderError | 僅用于開發(fā)環(huán)境,在render()出現(xiàn)錯誤時,提供另外的渲染輸出 |
選項 | 說明 |
---|---|
beforeCreate | 發(fā)生在Vue實(shí)例初始化之后,data observer和event/watcher事件被配置之前 |
created | 發(fā)生在Vue實(shí)例初始化以及data observer和event/watcher事件被配置之后 |
beforeMount | 掛載開始之前被調(diào)用,此時render()首次被調(diào)用 |
mounted | el被新建的vm.$el替換,并掛載到實(shí)例上之后調(diào)用 |
beforeUpdate | 數(shù)據(jù)更新時調(diào)用,發(fā)生在虛擬DOM重新渲染和打補(bǔ)丁之前 |
updated | 數(shù)據(jù)更改導(dǎo)致虛擬DOM重新渲染和打補(bǔ)丁之后被調(diào)用 |
activated | keep-alive組件激活時調(diào)用 |
deactivated | keep-alive組件停用時調(diào)用 |
beforeDestroy | 實(shí)例銷毀之前調(diào)用,Vue實(shí)例依然可用 |
destroyed | Vue實(shí)例銷毀后調(diào)用,事件監(jiān)聽和子實(shí)例全部被移除,釋放系統(tǒng)資源 |
選項 | 說明 |
---|---|
directives | 配置局部注冊的自定義指令 |
filters | 過濾器,針對一些數(shù)據(jù)進(jìn)行篩選、過濾、格式化等相關(guān)的處理,過濾器是一個帶有參數(shù)和返回值的方法 ,只能用在{{}}和v-bind里面。 |
components | 配置局部注冊組件 |
選項 | 說明 |
---|---|
parent | 指定當(dāng)前實(shí)例的父實(shí)例,子實(shí)例用this.$parent訪問父實(shí)例,父實(shí)例通過$children數(shù)組訪問子實(shí)例 |
mixins | 將屬性混入Vue實(shí)例對象,并在Vue自身實(shí)例對象的屬性被調(diào)用之前得到執(zhí)行(組件的多繼承) |
extends | 用于聲明繼承另一個組件,從而無需使用Vue.extend,便于擴(kuò)展單文件組件(組件的單繼承) |
provide&inject | 2個屬性需要一起使用,用來向所有子組件注入依賴 |
選項 | 說明 |
---|---|
name | 允許組件遞歸調(diào)用自身,便于調(diào)試時顯示更加友好的警告信息 |
delimiters | 改變模板字符串的風(fēng)格,默認(rèn)為{{}} |
functional | 讓組件無狀態(tài)(沒有data)和無實(shí)例(沒有this上下文) |
model | 允許自定義組件使用v-model時定制prop和event |
inheritAttrs | 默認(rèn)情況下,父作用域的非props屬性綁定會應(yīng)用在子組件的根元素上。當(dāng)編寫嵌套有其它組件或元素的組件時,可以將該屬性設(shè)置為false關(guān)閉這些默認(rèn)行為 |
comments | 設(shè)為true時會保留并且渲染模板中的HTML注釋 |
Model、View、Controller,分別表示數(shù)據(jù)、視圖、控制器。其實(shí)這只是一種設(shè)計思想,
Model:數(shù)據(jù)模型,用來存儲數(shù)據(jù)
View:視圖界面,用來展示UI界面和響應(yīng)用戶交互
Controller:控制器(大管家角色),監(jiān)聽模型數(shù)據(jù)的改變和控制視圖行為、處理用戶交互
M(model):代表的是數(shù)據(jù)
V(view):代表的是視圖(頁面)
VM(viewmodel):代表的是視圖模型,作用:用來管理視圖和模型的轉(zhuǎn)換
MVVM是MVC的增強(qiáng)版,實(shí)質(zhì)上和MVC沒有本質(zhì)區(qū)別,只是代碼的位置變動而已
簡單來說就是視圖發(fā)生改變時模型也會發(fā)生改變,模型發(fā)生改變時視圖也會發(fā)生改變,這就是vue的數(shù)據(jù)雙向綁定
關(guān)鍵點(diǎn)在于 data 如何更新 view,因為 view 更新 data 其實(shí)可以通過事件監(jiān)聽即可,比如 input 標(biāo)簽監(jiān)聽 input 事件就可以實(shí)現(xiàn)了
雙向綁定步驟:
實(shí)現(xiàn)一個監(jiān)聽器 Observer,用來劫持并監(jiān)聽所有屬性,如果有變動的,就通知訂閱者。
實(shí)現(xiàn)一個訂閱者 Watcher,可以收到屬性的變化通知并執(zhí)行相應(yīng)的函數(shù),從而更新視圖。
實(shí)現(xiàn)一個解析器 Compile,可以掃描和解析每個節(jié)點(diǎn)的相關(guān)指令,并根據(jù)初始化模板數(shù)據(jù)以及初始化相應(yīng)的訂閱器。
vue的雙向綁定原理:
vue數(shù)據(jù)的雙向綁定是通過數(shù)據(jù)劫持結(jié)合發(fā)布者-訂閱者模式的方式來實(shí)現(xiàn)的。其核心就是通過Object.defineProperty()方法設(shè)置set和get函數(shù)來實(shí)現(xiàn)數(shù)據(jù)的劫持,在數(shù)據(jù)變化時發(fā)布消息給訂閱者,觸發(fā)相應(yīng)的監(jiān)聽回調(diào)。也就是說數(shù)據(jù)和視圖同步,數(shù)據(jù)發(fā)生變化,視圖跟著變化,視圖變化,數(shù)據(jù)也隨之發(fā)生改變;
以上就是關(guān)于“VUE實(shí)例參數(shù)與MVVM模式知識點(diǎn)有哪些”這篇文章的內(nèi)容,相信大家都有了一定的了解,希望小編分享的內(nèi)容對大家有幫助,若想了解更多相關(guān)的知識內(nèi)容,請關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。