vue的響應式1

2021-10-10 04:47:47 字數 2161 閱讀 6798

>

}div

>

const vm =

newvue(}

);vm.mrdeng =

'手如柔荑、膚如凝脂'

;// 見證奇蹟的時刻,頁面變化啦

為了防止名稱衝突。因為會將data中資料**給vue,假如說我們自己寫的data名稱和vue中自帶的屬性衝突了,那麼就會覆蓋vue內部的屬性,所以vue會把自己內部的屬性成員名稱前加上$或_,如果加上的是$,代表是我們可以使用的,如果加上的是_,是vue自己內部使用的方法或屬性,我們不需要呼叫

>

} div

>

const vm =

newvue(}

})vm.mrdeng.wife =

'liu'

;

>

} div

>

const vm =

newvue(}

})vm.mrdeng.wife =

'liu'

; vm.msg =

'鄧哥:手如柔荑、膚如凝脂'

;

vue更新dom的操作是非同步執行的,只要偵聽到資料變化,將開啟乙個非同步佇列,如果乙個資料被多次變更,那麼只會被推入到佇列中一次,這樣可以避免不必要的計算和dom操作。

同步執行棧執行完畢後,會執行非同步佇列

>

}div

>

const vm =

newvue(}

)vm.msg =

'杉杉超美的'

;console.

log(vm.msg)

;// 杉杉超美的,此時資料已更改

console.

log(vm.$el.innerhtml)

;// 杉杉。此時頁面還未重新渲染

答:利用vm.$nexttick或vue.nexttick,在頁面重新渲染,dom更新後,會立刻執行vm.$nexttick

>

}div

>

const vm =

newvue(}

)vm.msg =

'杉杉超美的'

;console.

log(vm.msg)

;// 杉杉超美的,此時資料已更改

// 1. 使用vm.$nexttick

vm.$nexttick((

)=>

)// 2. 使用vue.nexttick

vue.

nexttick((

)=>

)

>

}div

>

const vm =

newvue(}

)vm.msg =

'杉杉超美的'

;// 1. 使用vm.$nexttick

vm.$nexttick()

.then((

)=>

)// 2. 使用vue.nexttick

vue.

nexttick()

.then((

)=>

)

vue.nexttick內部函式的this指向window

vue.

nexttick

(function()

)

vm.$nexttick內部函式的this指向vue例項物件

vm.

$nexttick

(function()

)

vue響應式布局 Vue 響應式原理

vue2 的資料偵測 在 src observer 目錄裡面,元件例項在初始化時,會呼叫 observe 函式處理 data function initdata vm observe 改寫了所有物件屬性的 getter setter 和陣列原型上的 7 個會改寫陣列方法,從而讓 data 變成可響應...

vue的響應式

資料變化,頁面就會重新渲染 div const vm newvue 這時候我們在頁面的控制台裡面修改資料 vm.msg hello vue 這時候我們發現,頁面改變了。為什麼data裡面的資料會直接出現在vue例項物件中?當建立vue例項時,vue會將data中的資料 給vue例項,目的是為了實現響...

Vue的響應式

vue2中,實現響應式的原理是使用es5的object.defineproperty,重寫了幾乎所有屬性的getter和setter。object.defineproperty 1.1 可配置的屬性 const object1 object.defineproperty object1,proper...