2
当在Vue.js中使用渲染函数来渲染一个dom元素时,我尝试用JavaScript重写v-if指令,如果这样的话。在Vue.js中渲染函数
export default{
destroyed(){
console.log("destroyed")
},
props:['show'],
render(h){
if(this.show){
return h('div',{domProps:{innerHTML:'test'},on:{click:this.quit}})
}
},
methods:{
quit(){
this.$destroy();
}
}
}
但是当显示为false时,Vue实例似乎不会进入destory生命周期。
如果我使用vm。$ destory方法,实例会进入destory生命周期,但dom元素仍然存在。
这是怎么发生的?
我可能是错的,但我认为每个VUE组件需要渲染的至少一个元素。如果你什么都不渲染,vue可能会破坏组件。 – nils
@nils谢谢。如果我返回一个元素,那么它如何触发破坏生命周期? – liajoy