请问这种数组类型的prop,是不是default都要写成函数形式呢?
就是用sliders传进来的data,在props中定义的时候default要写成data(){return []} 是不是以后凡是数组 对象类型的都要这么写呢?非常感谢!
1
收起
正在回答
2回答
vue中,在父组件通过props传数组或对象类型值给子组件的时候,数组或对象的默认值应当由一个工厂函数返回,所以default是用函数表示。
例如数组我们要写成
1 2 3 4 5 6 | proE: { type: Array, default (){ return [] } } |
对象我们要写成:
1 2 3 4 5 6 | propE: { type: Object, default (){ return {} } } |
希望可以帮到你!
卡布琦诺
2018-12-16 10:42:47
关于同学的问题,首先我们需要了解的是在vue中,data有三种写法:
第一种写法:
1 2 3 4 5 6 7 8 | <script type= "text/javascript" > var app= new Vue({ el: '#app' , data:{ …… } }) </script> |
第二种写法:
1 2 3 4 5 6 7 8 9 10 | <script type= "text/javascript" > var app= new Vue({ el: '#app' , data: function (){ return { …… } } }) </script> |
第三种写法:
1 2 3 4 5 6 7 8 9 10 | <script type= "text/javascript" > var app= new Vue({ el: '#app' , data() { return { …… } } }) </script> |
这里的第三种是第二种的ES6写法
区别:
1、在简单的Vue实例中,没什么区别,因为app对象不会被复用
1 | var app = new Vue({...}) |
2、在组件中,因为可能在多处调用同一组件,所以为了不让多处的组件共享同一data对象,只能返回函数,因此就需要使用如下方式:
1 2 3 4 5 6 7 | export default { data(){ return { ... } } } |
因此,这里不是因为是数组才这么写的,而是为了避免不让多处的组件共享同一data对象,只能返回函数。
希望可以帮到你!
热门框架Vue开发WebApp 18版
- 参与学习 人
- 提交作业 209 份
- 解答问题 3299 个
本路径是通过ES6基础知识、运用Zepto、Swiper、fullPag等移动端常用工具包、以及当下流行框架Vue,结合多个实战案例,还原真实开发场景,最终实现手机端购物商城网页开发。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧