zoukankan      html  css  js  c++  java
  • vue 之 data为什么必须声明为返回一个初始数据对象的函数?

    官方解释:

      当一个组件被定义, data 必须声明为返回一个初始数据对象的函数,因为组件可能被用来创建多个实例。如果data 仍然是一个纯粹的对象,则所有的实例将共享引用同一个数据对象!通过提供 data 函数,每次创建一个新实例后,我们能够调用 data 函数,从而返回初始数据的一个全新副本数据对象。

    可能你看了官方的解释还是不明白,下面举个例子说明一下。

    官方文档说明的很准确了,假定存在组件ComponentA,里面定义为

    官方文档说明的很准确了,假定存在组件ComponentA,里面定义为
    
    export default {
        props: {
            title: String
        },
        data: {
            test: 1
        }
    }
    在某个Page里面我们定义了如下的模板
    
    <template>
        <div>
            <component-a title="1"></component-a>
            <component-a title="2"></component-a>
        </div>
    </template>
    
    如果不用function return 每个组件的data都是内存的同一个地址,那一个数据改变其他也改变了,这当然就不是我们想要的。 用function return 其实就相当于申明了新的变量,相互独立,自然就不会有这样的问题
  • 相关阅读:
    回忆Partition算法及利用Partition进行快排
    2019春第七周作业
    2019春第六周作业
    2019春第五周作业
    2019年春季学期第四周作业。
    2019年春季学期第三周作业
    2019年春季学期第二周作业
    2019春第一周作业编程总结
    PTA编程总结2—币值转换
    第七周编程总结
  • 原文地址:https://www.cnblogs.com/wusheng2016/p/7444188.html
Copyright © 2011-2022 走看看