我的编程空间,编程开发者的网络收藏夹
学习永远不晚

vue中data的基础汇总

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

vue中data的基础汇总

vue中如何重置data

重置data需要了解3个小知识点

(1)this.$data获取组件当前状态的data对象

(2)this.$options.data获取组件初始状态的data对象

(3)Object.assign()方法用于将所有可美剧属性的值从一个或者多个源对象复制到目标对象,并返回目标对象。

Object.assign(target,source1,source2,....sourceN)方法中可以传递多个参数,第一个参数是目标对象,后面的是源对象,源对象可以有一个或者多个。

Object.assign()方法还可以用来合并对象。合并时目标对象会改变,如果遇到相同属性时,后面的属性值就会覆盖前面的属性值。

给予以上小知识点,我们可以很容易的重置vue中的data

Object.assign(this.$data, this.$options.data.call(this));

示例:

<template>
  <div>
    <p>Vue中data相关的知识点</p>
    <button @click="addElement">添加元素</button>
    <div v-for="item in dataList" :key="item">{{ item }}</div>
    <div>
      <button @click="resetData">重置</button>
    </div>
  </div>
</template>
<script>
export default {
  name: "DataTest",
  data() {
    return {
      dataList: [],
    };
  },
  methods: {
    addElement() {
      this.dataList.push(this.dataList.length + 1);
    },
    resetData() {
      Object.assign(this.$data, this.$options.data.call(this));
    },
  },
};
</script>

点击添加按钮,添加元素

点击重置按钮:

可以看到dataList变成一个长度为0的数组,所以data被重置了。

组件中的data为什么是一个函数

vue组件可以复用,如果data是一个对象,作用域没有分开,组件之间的data就会相互影响。是一个函数的话每个示例都可以维护一份被返回对象的独立拷贝,组件之间的data属性值就不会相互影响。

如果组件中的data是一个对象:

      function VueComponent() {}
      VueComponent.prototype.data = {
        count: 0,
      };
      const A = new VueComponent();
      const B = new VueComponent();
      console.log(" A count: ", A.data.count);
      console.log(" B count: ", B.data.count);
      A.data.count = 10;
      console.log("修改A组件的count后 A count: ", A.data.count);
      console.log("修改A组件的count后 B count: ", B.data.count);

可以看到修改A组件中data的count值之后,B组件中data的count值也发生了变化。

如果组件中的data是一个函数:

      function VueComponent() {
        this.data = this.data();
      }
      VueComponent.prototype.data = function () {
        return {
          count: 0,
        };
      };
      const A = new VueComponent();
      const B = new VueComponent();
      console.log(" A count: ", A.data.count);
      console.log(" B count: ", B.data.count);
      A.data.count = 10;
      console.log("修改A组件的count后 A count: ", A.data.count);
      console.log("修改A组件的count后 B count: ", B.data.count);

可以看到修改A组件中data的count值之后,B组件中data的count值并没有变化,所以组件之间的数据不会相互影响。

为什么new Vue里的data可以是一个对象

vue实例中的data既可以是对象也可以是函数,为什么vue实例中的date可以是对象呢?

因为Vue开发的应用一般为单页面应用,通常情况下只会new一个Vue对象,所以不会存在多个实例对象之间数据相互影响的情况。

到此这篇关于vue中data的基础汇总的文章就介绍到这了,更多相关vue data内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

vue中data的基础汇总

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

vue中data的基础汇总

这篇文章主要介绍了vue如何重置data、组件中的data为什么是一个函数、为什么newVue里的data可以是一个对象,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
2022-11-13

redis 基础知识点汇总

本文涉及的内容参考下面的大纲,另外版本的问题一般都会指出来。正文1. 思维导图简单了做了一个思维导图,详细内容往后看。2. 详解下面针对思维导图列出的大纲,展开说明。2.1 常用的 5 种数据类型Redis 是基于 C 语言开发的, 不同的数据类型都对应有不同
redis 基础知识点汇总
2014-10-29

华为基础命令汇总

  交换机的基础命令汇总  system-view 进入系统视图  quit 退到系统视图  sysname 交换机命名  vlan 20 创建vlan(进入vlan 20)  display vlan 显示vlan  undo vlan 20 删除vlan 20  display vlan 20 显示vlan里的端口
华为基础命令汇总
2024-04-18

python 基础知识汇总(注释规范)

python 分为 单行注释,多行注释以及特殊注释特殊注释:#!/usr/bin/env python# -*-coding:utf-8-*-例1:#!/usr/bin/env python1、必须是文件的第一行2、必须以#!开头 3、告诉
2023-01-31

Java常见知识点汇总(③)——面向对象基础

面向对象三要素:封装、继承、多态①. 封装:封装的意义,在于明确标识出允许外部使用的所有成员函数和数据项,或者叫接口。②. 继承:继承基类的方法,并做出自己的扩展;声明某个子类兼容于某基类(或者说,接口上完全兼容于基类),外部调用者可无需关
2023-06-05

如何激活win8 各种Win8基础知识汇总

Win8正式版即将于一星期后正式上市,随着Win8上市临近,各大媒体以及微软均加大了对Win8的宣传力度。目前网上也疯狂的从MSDN等渠道进行下载Win8系统,不过都需要激活,,并且不是正式版,很多朋友想抢先尝鲜下,今天电脑百事网编辑来和大
2022-06-04

基于android中权限的集合汇总

程序执行需要读取到安全敏感项必需在androidmanifest.xml中声明相关权限请求, 完整列表如下: 1. android.permission.ACCESS_CHECKIN_PROPERTIES 允许读写访问”propert
2022-06-06

编程热搜

目录