>
}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...