1 2 3 4 5 6 7 8 | <script type="text/javascript"> var app=new Vue({ el:'#app', data:{ isLogin: false } }) </script> |
1 2 3 4 5 6 7 8 9 10 | <script type="text/javascript"> var app=new Vue({ el:'#app', data: function(){ return { isLogin: false } } }) </script> |
1 2 3 4 5 6 7 8 9 10 | <script type="text/javascript"> var app=new Vue({ el:'#app', data() { return { isLogin: false } } }) </script> |
第三种是第二种的ES6写法。
一、在简单的Vue实例中,1、2写法没有什么区别,因为你的app对象不会被复用
1 | var app = new Vue({...}) |
二、但是在组件中,因为可能在多处调用同一组件,为了不让多处的组件共享同一data对象,只能返回函数。
data为对象的话会报错,为了理解这种机制,我们假设data为一个对象,那么这同一个对象有可能被很多实例共享,一个实例改变其它也会跟着变,这明显是不对的。而通过data函数,每新建一个实例,都会调用data来return一组新的原始数据。
下一篇:带你轻轻松松理解vue.js中的mixins(混合)
共 0 条评论关于"为什么在Vue.js组件中data必须是函数的理解"
最新评论