<template>
<div>
<div ref="msg">{{ message }}</div>
<div>{{ message1 }}</div>
<button @click="changeMessage">改变message</button>
</div>
</template>
<script>
export default {
name: "HomeView",
data() {
return {
message: "你好世界",
message1: "",
};
},
created() {
// this.$nextTick(() => {
// ……
// });
},
// vue中$nextTick
// $nextTick 是将回调函数延迟在下一次dom更新数据之后调用
// vue是异步渲染的框架,数据更新之后,dom是不会立刻渲染
// 使用场景:
// 1、在生命周期created中进行dom操作,一定要放到$nextTick函数中进行
// 2、在数据变化后要执行某个操作,而这个操作需要使用随数据变化而变化的dom结构时,这个操作需要发给到$nextTick中进行
methods: {
changeMessage() {
this.message = "hello world";
// setTimeout(() => {
// this.message1 = this.$refs.msg.innerHTML
// }, 200);
// this.$nextTick(() => {
// this.message1 = this.$refs.msg.innerHTML;
// });
},
},
};
</script>