vue.js - Vue 强制所有子组件渲染
问题描述
我正在使用 Vue 和 Vuetify 来创建我的应用程序。我用 vuetifyv-expansion-panels
来创建手风琴风格的展示。每个v-expansion-panel
本身都包含一个自定义组件。
我注意到在第一次单击扩展面板之前不会创建这些组件。之后, usingkeep-alive
允许子组件的所有反应属性和方法处于活动状态(这是我想要的行为)。
创建父组件时如何强制创建子组件?这样,在子组件的生命周期钩子中触发的任何方法created()
都应该在创建父组件时触发。
这个 Codepen是当前行为的一个例子。注意:单击面板时请务必查看控制台。
解决方案
如果您考虑一下,延迟加载扩展面板的内容实际上是有意义的,因为如果用户从不打开它们,这将是无用的工作。因此,您尝试完成的事情可能有一些更好的方法,但是如果您仍然喜欢它,那么我的建议是找到一种以编程方式打开/关闭面板的方法(如此处所示)并在渲染父组件时快速打开和关闭它. 这样,您将拥有您的子组件created
,并且 UI 将保持不变。
推荐阅读
- javascript - Highchart Bubble 不显示工具提示
- android - 如何找到用于手动测试的 android 应用程序的代码覆盖率?
- symfony4 - 如何创建可以根据实体当前状态拒绝的自定义更新操作?
- android - 如何使用 ffmpeg 减少长视频中的执行时间
- laravel - Laravel:如何为多个域创建路由
- r - 向网格中的每个构面添加一条线
- apache-kafka - 在 Kafka Streams 中至少使用一次交付时,流处理是原子的/事务的吗?
- javascript - Express Validator 错误:expressValidator 不是函数
- firebase - 如何通过 Ionic 4 上的 routerLink 转到详细信息页面?
- excel - 如何在excel中将文本与以下文本分开?