先从v-if出发,观察组件销毁
turn-Com
复制代码
当组件使用v-if切换时
正常走完destroyed钩子,DOM也会相应更新移除
在destroyed钩子中使用this.tesMessage = 'XXX'试图改变View内容也已经是无效的了
当组件调用vm.$destroy()手动销毁时
同样走完了destroyed钩子,但页面中的DOM还存在,切换switchCom变量,组件将重新走生命周期,生成一个新的实例,原来绑定的DOM会被替换
调用vm.$destroy()手动销毁前,尝试改变数据
这里却出现了一个小插曲
我试图在调用销毁前改变data中的testMessage,但DOM中的内容没有如实更新
调用vm.$destroy()后若需要清理DOM中的内容
调用这个方法可以实现,但如果有v-else或是其他v-if引用了switchCom变量进行条件渲染的DOM都会被移除
this.$el.parentNode.removeChild(this.$el);
复制代码
此时继续切换switchCom变量&#