首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Vue.js中的render函数

Vue.js中的render函数
EN

Stack Overflow用户
提问于 2017-02-20 17:25:59
回答 1查看 2.2K关注 0票数 3

当使用Vue.js中的render函数来呈现dom元素时,我尝试用JavaScript的if重写v-if指令,如下所示。

代码语言:javascript
复制
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为false时,Vue实例似乎不会去销毁生命周期。

如果我使用vm.$destory方法,实例将进入destory生命周期,但dom元素仍然存在。

它是如何发生的?

EN

回答 1

Stack Overflow用户

发布于 2017-02-20 17:57:13

代码语言:javascript
复制
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/

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42340724

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档