Props 控制 v-if 对子组件生命周期的影响是怎样的?

Props 控制 v-if 对子组件生命周期的影响是怎样的?

父组件通过 props 控制子组件 root 元素的 v-if,子组件生命周期执行之谜

当通过 props 中的值控制子组件 root 元素的 v-if 时,子组件的生命周期执行情况有所不同,具体表现如下:

方案 1:直接使用 v-if 控制

  1.  

登录后复制

当 v-if 为 false 时,子组件的生命周期钩子函数会执行,这是因为 v-if 会销毁组件实例。切换 v-if 时,子组件会被销毁并重建,因此会再次执行钩子函数。

方案 2:通过 props 控制 root 元素

  1.  

登录后复制

当 visible 为 false 时,子组件的生命周期钩子函数不会执行。这是因为子组件实例仍然存在,只是 root 元素没有渲染到页面上。实际上,组件已经初始化,只是隐藏而已。可见,visible 只是控制 root 元素的显示与隐藏,而不会影响组件实例本身。

总结一下,在方案 1 中,v-if 会影响子组件实例的生命周期,而方案 2 不会。不过,可以通过在子组件中添加一个 watch – visible 来监听到 visible 的变化。

以上就是Props 控制 v-if 对子组件生命周期的影响是怎样的?的详细内容,更多请关注【创想鸟】其它相关文章!

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

点点赞赏,手留余香

给TA打赏
共0人
还没有人赞赏,快来当第一个赞赏的人吧!
    编程技术

    在 CSS 中,如何让文本背景色随波浪形状不断变化?

    2025-3-10 14:35:12

    编程技术

    如何复制折叠的代码?

    2025-3-10 14:35:19

    0 条回复 A文章作者 M管理员
    欢迎您,新朋友,感谢参与互动!
      暂无讨论,说说你的看法吧
    个人中心
    购物车
    优惠劵
    今日签到
    私信列表
    搜索