[英]render function in Vue.js
當在Vue.js中使用渲染函數來渲染dom元素時,我嘗試用JavaScript重寫v-if指令,如果是這樣的話。
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();
}
}
}
但是當show是假的時候,似乎Vue實例不會進入destory生命周期。
如果我使用vm。$ destory方法,實例將進入destory生命周期,但dom元素仍然存在。
它是如何發生的?
export default{
destroyed(){
console.log("destroyed")
},
props:['show'],
render(h){
if(this.show){
return h('div',{domProps:{innerHTML:'test'},on:{click:this.quit}})
}else {
return null
}
},
methods:{
quit(){
this.$destroy();
}
}
}
這是工作小提琴: https : //jsfiddle.net/srinivasdamam/3s18pjrg/
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.