数据与方法

当一个 Vue 实例被创建时,它将 data 对象中的所有的属性加入到 Vue 的响应式系统中。当这些属性的值发生改变时,视图将会产生“响应”,即匹配更新为新的值。代码如下:

<div id="app"></div>
<script src="https://cdn.jsdelivr.net/npm/vue@2.6.12/dist/vue.min.js"></script>
<script>
  // 数据对象
  let data = { a: '张三' };
  // 该对象被加入到一个 Vue 实例中
  let vue=new Vue({
     el:"#app",
     data: data

  })
  // 获得这个实例上的属性
  // 返回源数据中对应的字段
  console.log(vue.a == data.a) //结果:true
  // 设置属性也会影响到原始数据
  vue.a = '李四'
  console.log(data.a) //结果:李四
  //反正亦然
  data.a = '王五';
  console.log(vue.a) //结果:王五

</script>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22

Vue实例里面的data也可以是一个方法,代码如下:

<div id="app"></div>
<script src="https://cdn.jsdelivr.net/npm/vue@2.6.12/dist/vue.min.js"></script>
<script>
  // 数据对象
  let data = { a: '张三' };
  // 该对象被加入到一个 Vue 实例中
  let vue=new Vue({
     el:"#app",
     data(){
      return data
    }
  })
    // 获得这个实例上的属性
    // 返回源数据中对应的字段
    console.log(vue.a == data.a) //结果:true
    // 设置属性也会影响到原始数据
    vue.a = '李四'
    console.log(data.a) //结果:李四
    //反正亦然
    data.a = '王五';
    console.log(vue.a) //结果:王五
</script>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23

data为什么要用函数初始化数据而不是对象?

data写成一个函数,数据以函数返回值的形式定义,这样每次复用组件的时候,都会返回一份新的data,相当于每个组件实例都有自己的私有空间,它们只负责维护各自的数据,不会造成混乱。而写成对象形式,所有的组件实例共用了一个data,这样改一个全都改了,可以理解成函数相当于局部作用域,对象相当于全局作用域。

上次更新: 2022/05/25 12:16:46
最近更新
01
关于我
07-14
02
科学上网
11-15
03
OSS+CDN
09-23
更多文章>
极昼青春
买辣椒也用券