![]() |
1
2
有很多不同的方法来处理这个问题。我怀疑这是否会像一个详尽的清单,但我可以给一些可能性的感觉。 1全局存储值
但是,全球商店不一定是Vuex。如果您没有其他理由来介绍Vuex,那么您可能更喜欢一些特别的东西。
存储的另一种选择是将数据保存在
https://vuejs.org/v2/guide/state-management.html#Simple-State-Management-from-Scratch
另一种选择就是
你会的
2将值存储在Vue原型上这与上面提到的非常相似,但我认为值得单独提及。看起来像这样:
文档: https://vuejs.org/v2/cookbook/adding-instance-properties.html 三。提供/注入
这个
https://vuejs.org/v2/api/#provide-inject 简而言之,它允许组件向其所有子代提供一个命名值,而无需将其显式地分别传递给每个子代。然后,子组件可以选择要注入的命名属性。
如果您认为这种方法适合您,那么我建议您进一步阅读: https://blog.logrocket.com/how-to-make-provide-inject-reactive/ 虽然这不太可能是你的解决方案,但我认为值得一提。 这个问题的出发点似乎是明确地传递道具是一种重复的形式。有可能犯错的额外噪音和额外的努力。 我们可以在传递道具的同时移除重复。这里的关键是重构模板,使子组件只具有一次功能。 显然,这需要在一个循环中,这样我们仍然可以得到所有想要的组件。这个循环需要一个合适的数据结构来驱动它,以便创建所有正确的组件。
我假设问题中的模板是一个简化。如果您确实连续地有几个实例,那么重构以使用
https://michaelnthiessen.com/reducing-redundant-repetition 5动态组件
这就是问题中所暗指的。我们的核心思想是改变组件的定义。这并不一定意味着要创建一个新的组件,它同样可以意味着在现有组件定义中插入一些东西。我们已经看到了这个想法的变化
理论上可以用
我们可以用
从性能角度来看,使用原型相对便宜。反应性也有潜在的问题,但它们只适用于值可以改变的情况,而在这种情况下是不可能的。
以及:
你同样可以尝试调整导入的
|
![]() |
Goose · 如何更新Vue中的插槽。JS公司 7 年前 |
![]() |
Scap · 访问其他组件中的vue组件数据时出现问题 7 年前 |
![]() |
Andy · 从列表中删除vue组件始终删除列表中的最后一个元素 7 年前 |
![]() |
Harshal Patil · 如何创建Vue。js插槽编程? 7 年前 |
![]() |
kindisch · 无法解析动态导入的vue组件 7 年前 |
![]() |
kshep92 · 将布尔属性传递给Vue组件的速记 7 年前 |
![]() |
Bitwise · 将动态数据传递到路由器链路。 7 年前 |