为什么在Vue.js组件中data必须是函数?这可能是我们经常面试中遇到的一个问题,那该如何理解?我们先来看data的两种写法
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 11 | <script type="text/javascript"> var app=new Vue({ el:'#app', data: function(){ return { isLogin: false } } }) </script> |
在简单的Vue实例中,1、2写法没有什么区别,因为你的app对象不会被复用。但是在组件中,因为可能在多处调用同一组件,为了不让多处的组件共享同一data对象,只能返回函数。data为对象的话会报错,为了理解这种机制,我们假设data为一个对象,那么这同一个对象有可能被很多实例共享,一个实例改变其它也会跟着变,这明显是不对的。而通过data函数,每新建一个实例,都会调用data来return一组新的原始数据。
下一篇:带你轻轻松松理解vue.js中的mixins(混合)
支付宝扫一扫打赏
微信扫一扫打赏
共 0 条评论关于"为什么在Vue.js组件中data必须是函数的理解"
最新评论