【发布时间】:2020-02-12 09:52:14
【问题描述】:
我正在尝试弄清楚如何经济地使用反应系统。我知道组件的 $options 用于非反应性数据,通常在 created() 或 mount() 方法中从其内部设置。但是有没有办法从父级传递 init 的非反应性道具?
举个简单的例子:
- 假设我有一个将值呈现为货币的组件。
- 99% 的时间货币是美元和
- 100% 的时间货币在实例化后不会改变。
- 但该值必须是响应式的。
(这是一个简化的示例,只是为了演示这个概念)
props: {
value: {
type: Number,
required: true,
},
currency: {
type: String,
default: 'USD',
},
},
但我不想在货币上花费观察者,因为它永远不会改变。
我能以某种方式将它作为一个无人关注的 $option 传递吗?还有另一种方法吗?还是观察者如此便宜,我不应该担心大规模的效率?
感谢您的帮助!
【问题讨论】:
-
Vue 已经过高度优化,以使反应性快速且可扩展,所以我最初的反应是您进行了过早的优化。我建议您尝试一下,看看您是否有任何渲染问题。
-
谢谢,这是很好的反馈并解决了我的问题。当应用程序扩展较大时,我试图避免修补泄漏,但考虑到框架,我可能过于谨慎。如果你愿意,我仍然很好奇理论上你会怎么做。
标签: vue.js vuejs2 vue-reactivity