zoukankan      html  css  js  c++  java
  • [转]vue重新渲染组件(重置或者更新)

    方案一:v-if(可以重置生命周期)

    当数据变更后,通过watch 监听,先去销毁当前的组件,然后再重现渲染。使用 v-if 可以解决这个问题

    <template>   <third-comp v-if="reFresh"/></template> <script>   export default{       data(){          return {                reFresh:true,                menuTree:[]            }       },       watch:{             menuTree(){                   this.reFresh= false                  this.$nextTick(()=>{                                        this.reFresh = true                })            }       }}</script>

    这种方式虽然可以实现,但太不优雅  

    方案二 ::key=‘’(此处可触发watch和update)

    通过vue key 实现,原理请查看官方文档。所以当key 值变更时,会自动的重新渲染。

    <template>   <third-comp :key="menuKey"/></template> <script>   export default{       data(){          return {                menuKey:1            }       },       watch:{             menuTree(){                ++this.menuKey            }       }}</script> 

    方案三:this.$forceUpdate

    这个方法可以使当前组件调用这个方法时,重新渲染组件。


    ---------------------
    作者:泥土里的绽放
    来源:CNBLOGS
    原文:https://www.cnblogs.com/cjjjj/p/12405901.html
    版权声明:本文为作者原创文章,转载请附上博文链接!

  • 相关阅读:
    安卓开发1-开发第一个安卓hello word
    安卓开发系列
    Php调用工行支付接口时的问题解决
    angular模块
    angular自定义指令基础
    ajax跨域问题
    angular要点总结
    JS闭包函数
    避开ie6使用float后再使用margin兼容的2种方法
    如何学习面向对象编程
  • 原文地址:https://www.cnblogs.com/jialikesensi/p/13361318.html
Copyright © 2011-2022 走看看