var vm = new Vue({
el: '#example',
data: {
message: '123'
}
})
vm.message = 'new message'
console.log(vm.$el.textContent)
Vue.nextTick(function () {
console.log(vm.$el.textContent)
})
在网上看了一些Vue.nextTick的说明,说是在下一个任务循环时(即DOM更新完毕后)进行操作,
以上代码打印出来是这个效果,的确是不一样的,
但是如果把代码改成
var vm = new Vue({
el: '#example',
data: {
message: '123'
}
})
vm.message = 'new message'
console.log(vm)
// console.log(vm.$el)
Vue.nextTick(function () {
console.log(vm)
// console.log(vm.$el)
})
打印vm.$el 或者只打印vm的时候,在Chrome中开发者工具查看的时候里面的textContent就一样了
上面的:
下面的:
这是为什么呢?
在你使用chrome控制台查看的时候,点开属性的时候,Chrome才会去查询那个值的属性,你不信的话可以
JSON.stringify(vm)
转成JSON字符串再看