😉博主:初映CY的前说(前端领域) ,📒本文核心:vue2data作用
前言:当你看到这篇文章相比你已经对vue有了一定的了解,对data的有了一个基本的认识:data是存放我们当前页面数据地方。是的,没一点毛病,具体的来说是存放响应式数据地方,那么什么是响应式数据?我不在data中声明直接赋值数据给data会怎么样?那就开始我们的学习之旅吧!
⭐一、 data介绍
在Vue.js 2中,data 是一个用于定义组件的初始数据的选项。这个选项通常是一个函数,返回一个包含数据属性的对象。每个属性都会成为组件实例的响应式数据,这意味着当这些数据发生变化时,视图会自动更新以反映这些变化。
⭐二、 正确实操
当前我的数据结构如下所示:
<template><div class="hello"></div>
</template><script>
export default {name: "HelloWorld",props: {msg: String,},data() {return {dataContainer: {num: 1,list: {age: 2,gender: 7,},},};},created() {this.getNum();},methods: {getNum() {setTimeout(() => {this.dataContainer.num = 6;console.log("this.data.num 已赋值为=>", this.dataContainer.num);this.dataContainer.list.age = 20;console.log("this.dataContainer.list 已赋值为=>",this.dataContainer.list.age);}, 2000);console.log("定时器已设置,将在2秒后触发");},},
};
</script>
浏览器效果显示数据如下:
这个定时器相当我们模拟接口返回过来的数据,我们所赋值的dataContainer中name与list均在data中被我们所赋值过,因此是能够被正确的修改,下面我们来看看当我们不在data中声明(不是响应式)的时候,会发生什么
⭐三、 错误实操
此刻我先注释我们list这个数据,再次运行查看:
好家伙,页面直接报错了,找不到age
原理:我们data中数据是响应式的,所接受的数据必须在data中声明,当我们数据超过2层的时候我们的vue响应式就无法监听找到所对应的对象数据了。