溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

VUE實(shí)例參數(shù)與MVVM模式知識點(diǎn)有哪些

發(fā)布時間:2022-08-10 09:53:31 來源:億速云 閱讀:124 作者:iii 欄目:編程語言

這篇“VUE實(shí)例參數(shù)與MVVM模式知識點(diǎn)有哪些”文章的知識點(diǎn)大部分人都不太理解,所以小編給大家總結(jié)了以下內(nèi)容,內(nèi)容詳細(xì),步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“VUE實(shí)例參數(shù)與MVVM模式知識點(diǎn)有哪些”文章吧。

VUE實(shí)例參數(shù)與MVVM模式知識點(diǎn)有哪些

配置參數(shù)

實(shí)例化一個Vue對象,參數(shù)是一個選項對象,下面將會對其中包含的選項做些簡單的說明。

new Vue({
  options})

在Vue實(shí)例中可以通過this.$options查看實(shí)例的配置項

VUE實(shí)例參數(shù)與MVVM模式知識點(diǎn)有哪些

數(shù)據(jù)相關(guān)選項

選項說明
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ù)

DOM相關(guān)選項

選項說明
el聲明Vue根組件的掛載點(diǎn)(根組件特有)
template用于掛載元素的字符串模板
render渲染函數(shù),用于創(chuàng)建虛擬DOM,是字符串模板的替代方案
renderError僅用于開發(fā)環(huán)境,在render()出現(xiàn)錯誤時,提供另外的渲染輸出

生命周期鉤子相關(guān)選項

選項說明
beforeCreate發(fā)生在Vue實(shí)例初始化之后,data observer和event/watcher事件被配置之前
created發(fā)生在Vue實(shí)例初始化以及data observer和event/watcher事件被配置之后
beforeMount掛載開始之前被調(diào)用,此時render()首次被調(diào)用
mountedel被新建的vm.$el替換,并掛載到實(shí)例上之后調(diào)用
beforeUpdate數(shù)據(jù)更新時調(diào)用,發(fā)生在虛擬DOM重新渲染和打補(bǔ)丁之前
updated數(shù)據(jù)更改導(dǎo)致虛擬DOM重新渲染和打補(bǔ)丁之后被調(diào)用
activatedkeep-alive組件激活時調(diào)用
deactivatedkeep-alive組件停用時調(diào)用
beforeDestroy實(shí)例銷毀之前調(diào)用,Vue實(shí)例依然可用
destroyedVue實(shí)例銷毀后調(diào)用,事件監(jiān)聽和子實(shí)例全部被移除,釋放系統(tǒng)資源

資源相關(guān)選項

選項說明
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&inject2個屬性需要一起使用,用來向所有子組件注入依賴

其它選項

選項說明
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注釋

了解MVC

Model、View、Controller,分別表示數(shù)據(jù)、視圖、控制器。其實(shí)這只是一種設(shè)計思想,

Model:數(shù)據(jù)模型,用來存儲數(shù)據(jù)

View:視圖界面,用來展示UI界面和響應(yīng)用戶交互

Controller:控制器(大管家角色),監(jiān)聽模型數(shù)據(jù)的改變和控制視圖行為、處理用戶交互

MVVM模式

M(model):代表的是數(shù)據(jù)

V(view):代表的是視圖(頁面)

VM(viewmodel):代表的是視圖模型,作用:用來管理視圖和模型的轉(zhuǎn)換

MVVM是MVC的增強(qiáng)版,實(shí)質(zhì)上和MVC沒有本質(zhì)區(qū)別,只是代碼的位置變動而已

VUE實(shí)例參數(shù)與MVVM模式知識點(diǎn)有哪些
簡單來說就是視圖發(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è)資訊頻道。

向AI問一下細(xì)節(jié)

免責(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)容。

AI