Vue怎么赋值才能不触发watch事件,避免循环嵌套触发事件,被赋值的元素是根元素
时间: 2023-11-21 12:03:53 浏览: 123
vue首次赋值不触发watch的解决方法
在 Vue 中,如果要避免在给一个被 watch 监听的属性赋值时触发 watch 事件,可以使用 Vue 的 `$set` 方法来进行赋值。具体做法是:先将根元素设置为一个空对象,然后再使用 `$set` 方法来给根元素设置属性。这样做的好处是,能够避免循环嵌套触发事件。
例如,如果要给一个名为 `root` 的根元素赋值,可以使用以下方法:
```
<template>
<div>
<!-- 使用 $set 方法给根元素设置属性 -->
<div v-for="item in root.items" :key="item.id">{{ item.name }}</div>
</div>
</template>
<script>
export default {
data() {
return {
root: {}
}
},
mounted() {
// 使用 $set 方法给根元素设置属性
this.$set(this.root, 'items', [
{ id: 1, name: 'Apple' },
{ id: 2, name: 'Banana' },
{ id: 3, name: 'Cherry' }
])
}
}
</script>
```
这样做就能够避免循环嵌套触发事件了。
阅读全文