比如有一个组件
<modal id='xxx'>...</modal>
现在我希望这个modal重新渲染
也就是dom重新构建(为了让这个组件重置)
这个应该怎么做呢
指令 指令 指令
v-if,在切换时元素及它的数据绑定 / 组件被销毁并重建
一般情况下vue推崇的是数据驱动 也是数据更新进而使组件得以重新渲染。
如果题主一定要自己控制dom重新渲染,可以定义成指令 然后再update时候 自己去操作dom 这样应该是一种解决方法。
自定义指令
我只能说预期hack进去重新渲染,不如按照规范重新设计数据流。
我有一个不成熟的方案,就是v-if有起到重新渲染的效果,必要的时候可以结合nextTick hook试试。
我之前也有遇到过这个问题,但是这个我那个组件本身提供了重渲染的功能。
譬如说,
<modal id='xxx' v-if="modalShow">...</modal>
<button @click="rerender"></button>
methods:{
rerender: function(){
this.modalShow = false;
this.modalShow = true;
}
}