【发布时间】:2021-01-20 11:44:43
【问题描述】:
我想在 Vue 组件中使用一些不会改变的数据。以下代码不起作用:
const numbers = [1, 2, 3]
new Vue({
el: "#app"
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script>
<div id="app">
<div v-for="number in numbers">
{{number}}
</div>
</div>
错误提示失败
[Vue 警告]:属性或方法“数字”未在实例上定义,但在渲染期间引用。通过初始化该属性,确保此属性是反应性的,无论是在数据选项中,还是对于基于类的组件。请参阅:https://vuejs.org/v2/guide/reactivity.html#Declaring-Reactive-Properties。
这些消息表明我试图以“反应性”方式使用numbers。然而,就我而言,数据预计不会改变(const 声明突出显示)。
我当然可以将numbers 推送到实例中,这很有效:
new Vue({
el: "#app",
data: {
numbers: [1, 2, 3]
}
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script>
<div id="app">
<div v-for="number in numbers">
{{number}}
</div>
</div>
我对此感到有些不自在,我对“反应性”的理解是 data 是一个存放变化信息的地方(并且变化反映在 DOM 中)。
在 Vue 中使用常量(不变)数据的正确方法是什么? (特别是在哪里声明)
【问题讨论】:
标签: javascript vue.js