正如标题所示,我应该在data
中声明所有我的变量吗?或者只是用于数据绑定的那些?
<script>
var somethingElse = ''; //should this be declared here?
export default {
data () {
return {
something: '', //this var will be used in data-binding
somethingElse: '' //or here?
}
}
...
答案 0 :(得分:3)
我知道你来自其他libs / frameworks,其中实例变量和 state 存在差异。更改实例变量不会触发重新渲染,但可能会更改状态。
在Vue你不必担心。您可以在data
中拥有所有内容,只有在您更改了重要的地方(例如模板)时,Vue才会重新呈现。
<script>
export default {
data () {
return {
something: '',
somethingElse: '' // you can declare it here, it's the usual way
}
}
...
另一方面,你可以在外面声明变量,但如果你这样做:
<script>
var somethingElse = ''; // this will be a singleton. Generally used for constants
export default {
data () {
return {
something: '', //this var will be used in data-binding
}
}
...
然后somethingElse
将在此组件的所有实例之间共享。对于所有这些,它将是一个单独的值:如果你改变一个,它将同时改变所有实例。 (并且它不会被动反应,意味着对somethingElse
的更改不会在任何地方触发重新渲染。)