VueJ将非反应性道具从父项添加到自定义组件?

时间:2019-10-15 16:50:42

标签: vue.js vuejs2 vue-reactivity

我正在尝试找出如何经济地使用反应系统。我知道组件的$ options用于非反应性数据,通常在其内部通过created()或Mounted()方法设置。但是有没有办法从父级传入非反应性道具呢?

举一个简单的例子:

  • 假设我有一个将值呈现为货币的组件。
  • 99%的时间货币为美元和
  • 实例化后,
  • 100%的时间货币不会更改。
  • 但是该值必须是被动的。
    (这是一个愚蠢的例子,只是为了演示这个概念)
props: {
    value: {
        type: Number,
        required: true,
    },
    currency: {
        type: String,
        default: 'USD',
    },
},

但是我不想花钱观察货币,因为它永远不会改变。

我可以以某种方式将其作为未监视的$ option传递吗?还有另一种方法吗?还是观察者如此便宜,我不应该担心大规模的效率?

谢谢您的帮助!

1 个答案:

答案 0 :(得分:0)

要获取非反应性字段,请使用常规HTML属性而非声明的属性,然后通过组件$attrs对象进行访问。

我会选择Vue property。它是类型安全的,经过验证的,并且开销很小。

<my-element currency='12' />
const currency = parseFloat(this.$attrs.currency)