修改v-if导致整个组件被重新渲染?

在使用vue-sfc-rollup打包组件的时候发现了这个问题, 只要是有任何的元素使用了v-if或v-show控制显示都会导致整个组件被重新渲染, 用来计算style的函数会被调用,实在是找不到原因

<template>

<div

key="123"

class="test"

>

{{ Math.random() }}

<p v-show="visible" />

<button @click="visible = !visible">

toggle

</button>

</div>

</template>

这样写也会导致模板里的值变化


回答:

你不使用v-if或v-show他也会重新渲染,整个template是作为render-watcher存在的,它所依赖的变量发生改变都会导致他重新渲染,所以template中尽量不要写不受控的数据

以上是 修改v-if导致整个组件被重新渲染? 的全部内容, 来源链接: utcz.com/p/933031.html

回到顶部