摘要:和都是響應(yīng)式的,先看看官方的說法實(shí)例的數(shù)據(jù)對象。將會遞歸將的屬性轉(zhuǎn)換為,從而讓的屬性能夠響應(yīng)數(shù)據(jù)變化。深入理解響應(yīng)式原理當(dāng)你把一個普通的對象傳給實(shí)例的選項(xiàng),將遍歷此對象所有的屬性,并使用把這些屬性全部轉(zhuǎn)為。沒有這句,中的也不跟蹤狀態(tài)。
First
data 和 computed都是響應(yīng)式的,先看看官方的說法:
Vue 實(shí)例的數(shù)據(jù)對象。Vue 將會遞歸將 data 的屬性轉(zhuǎn)換為 getter/setter,從而讓 data 的屬性能夠響應(yīng)數(shù)據(jù)變化。
深入理解響應(yīng)式原理:
當(dāng)你把一個普通的 JavaScript 對象傳給 Vue 實(shí)例的 data 選項(xiàng),Vue 將遍歷此對象所有的屬性,并使用 Object.defineProperty 把這些屬性全部轉(zhuǎn)為 getter/setter。
每個組件實(shí)例都有相應(yīng)的 watcher 實(shí)例對象,它會在組件渲染的過程中把屬性記錄為依賴,之后當(dāng)依賴項(xiàng)的 setter 被調(diào)用時,會通知 watcher 重新計(jì)算,從而致使它關(guān)聯(lián)的組件得以更新。
原理如下圖:
2.兩者的區(qū)別:
data中的屬性并不會隨賦值變量的改動而改動,(賦值變量類似:num1: aaa.bbb這種,而這種是直接賦值:num1: "aaa")
當(dāng)需要這種隨賦值變量的改動而改動的時候,還是用計(jì)算屬性computed合適
如果實(shí)在要在data里面聲明屬性,可以先賦一個值,然后在methods里面定義方法操作該屬性,效果等同,也會有響應(yīng)式
測試以下代碼感受以下:
num1是data中的變量,其初始值為:{{num1}}
點(diǎn)擊按鈕后,data中的num1變化為:{{num1}}
點(diǎn)擊按鈕后,computed中的c_num1變化為:{{c_num1}}
1.data定義的屬性不會因?yàn)樗馁x值變量的變化而變化
2.computed定義的屬性會隨它的賦值變量的變化而變化
以上代碼轉(zhuǎn)載自代碼來源
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/101943.html
摘要:官方文檔中已經(jīng)有對其的解釋了,在這里把我的理解記錄一下。的使用場景模板中的復(fù)雜邏輯表達(dá)式,為了防止邏輯過重導(dǎo)致不易維護(hù),都應(yīng)當(dāng)把相關(guān)邏輯放入計(jì)算屬性。只在相關(guān)依賴發(fā)生改變時它們才會重新求值。 官方文檔中已經(jīng)有對其的解釋了,在這里把我的理解記錄一下。 computed 的使用場景 HTML模板中的復(fù)雜邏輯表達(dá)式,為了防止邏輯過重導(dǎo)致不易維護(hù),都應(yīng)當(dāng)把相關(guān)邏輯放入計(jì)算屬性。 比如這...
摘要:官方文檔中已經(jīng)有對其的解釋了,在這里把我的理解記錄一下。的使用場景模板中的復(fù)雜邏輯表達(dá)式,為了防止邏輯過重導(dǎo)致不易維護(hù),都應(yīng)當(dāng)把相關(guān)邏輯放入計(jì)算屬性。只在相關(guān)依賴發(fā)生改變時它們才會重新求值。 官方文檔中已經(jīng)有對其的解釋了,在這里把我的理解記錄一下。 computed 的使用場景 HTML模板中的復(fù)雜邏輯表達(dá)式,為了防止邏輯過重導(dǎo)致不易維護(hù),都應(yīng)當(dāng)把相關(guān)邏輯放入計(jì)算屬性。 比如這...
摘要:其實(shí)官方文檔對這個已經(jīng)說的很清楚了,筆者不過是在其基礎(chǔ)上進(jìn)行歸納總結(jié),各位看官還是先去讀一下官方文檔吧區(qū)別于的兩個核心在官方文檔中,強(qiáng)調(diào)了區(qū)別于最重要的兩點(diǎn)是屬性調(diào)用,而是函數(shù)調(diào)用帶有緩存功能,而不是,下面我們看一個具體的例子部分 其實(shí)官方文檔對這個已經(jīng)說的很清楚了,筆者不過是在其基礎(chǔ)上進(jìn)行歸納總結(jié),各位看官還是先去讀一下官方文檔吧 1.computed區(qū)別于method的兩個核心 在...
摘要:最近倒騰了一會,有點(diǎn)迷惑其中與這兩個屬性的區(qū)別所以試著寫了這個,好土掩面逃類似中組件的方法,不同的是采用的與綁定事件。簡而言之,是一次性計(jì)算沒有緩存,是有緩存的計(jì)算。 最近倒騰了一會vue,有點(diǎn)迷惑其中methods與computed這兩個屬性的區(qū)別,所以試著寫了TodoList這個demo,(好土掩面逃~); 1. methods methods類似react中組件的方法,不同的是v...
摘要:最近倒騰了一會,有點(diǎn)迷惑其中與這兩個屬性的區(qū)別所以試著寫了這個,好土掩面逃類似中組件的方法,不同的是采用的與綁定事件。簡而言之,是一次性計(jì)算沒有緩存,是有緩存的計(jì)算。 最近倒騰了一會vue,有點(diǎn)迷惑其中methods與computed這兩個屬性的區(qū)別,所以試著寫了TodoList這個demo,(好土掩面逃~); 1. methods methods類似react中組件的方法,不同的是v...
閱讀 3685·2021-10-11 11:09
閱讀 1349·2021-09-24 10:35
閱讀 3441·2021-07-29 13:48
閱讀 473·2019-08-30 13:15
閱讀 2526·2019-08-30 12:53
閱讀 3222·2019-08-30 12:44
閱讀 2719·2019-08-29 16:57
閱讀 968·2019-08-29 12:26