官方文档:
自己写了一个小demo:
<template> <div> <p ref="txt" v-if="show">{{message}}</p> <p>{{msg}}</p> <button @click="getTxt">点击</button> </div> </template> <script> export default { name: "next-tick", data () { return { show: false, message: '原始文本', msg: '' } }, methods: { getTxt () { this.show = true this.$nextTick(()=> { this.msg = this.$refs.txt.innerHTML + '更新获取文本' console.group(this.$refs.txt.innerHTML) }) } } } </script> <style scoped> </style>
总结了一下:如果使用v-show进行显示隐藏,methods里面是直接可以获取到文本值,如果用v-if,是不能获取的文本值的。
this.nextTick是在下次dom更新循环完成之后进行调用的