this.$nextTick方法用于更新数据后,马上进行dom操作,获取dom内容。
this.$nextTick是异步的。
更新数据后,视图是更新了,但是获取视图上的新数据的时候,却是原来的。这是就要用nextTick了。
例子:
<template>
<div>
<p ref="test">{{testData}}</p>
</div>
</template>
<script>
export default {
name: "Home",
data () {
return {
testData:"原来的数据"
};
},
mounted(){
//更新数据
this.testData = "新的数据";
//更新完数据,进行dom操作,获取的还是原来的数据
console.log(this.$refs.test.textContent); //原来的数据
this.$nextTick(()=>{
console.log(this.$refs.test.textContent); //新的数据
})
}
}
一些注意的地方:
1.this.$refs只能在mounted里使用
2.获取元素里的文字,是通过this.$refs.xxx.textContent