VueJS 2.x我应该在哪里声明数据绑定中未使用的变量?

时间:2018-04-12 23:56:29

标签: vue.js vuejs2

正如标题所示,我应该在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?

        }
    }

...

1 个答案:

答案 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的更改不会在任何地方触发重新渲染。)