我有一个类别数组,它被加载一次(在创建的钩子中),然后它一直是静态的。我在组件模板中呈现这些数组值。
<template>
<ul>
<li v-for="item in myArray">{{ item }}</li>
</ul>
</template>
我的数据属性看起来(它不包括 myArray - 我不想要反应绑定):
data() {
return {
someReactiveData: [1, 2, 3]
};
}
我的创建钩子:
created() {
// ...
this.myArray = ["value 1", "value 2"];
// ...
}
问题是,Vue 抛出错误——我不能在模板中使用 myArray,因为在创建 DOM 时没有创建这个变量——挂载。
那么如何做到这一点呢?或者哪里可以存储组件常量?
原文由 Dave 发布,翻译遵循 CC BY-SA 4.0 许可协议
Vue 将
data
选项中的所有属性设置为 setter/getter 以使其具有反应性。 深入了解反应性由于您希望
myArray
是静态的,您可以将其创建为自定义选项,可以使用vm.$options
您可以在模板中迭代此自定义选项,如下所示:
这是 小提琴