vue中的data为什么是一个函数

2023-05-16

首先:

组件是一个可复用的Vue实例,一个组件被创建好之后,就可能被用在各个地方,而组件不管被复用多少次,组件中data数据都应该是相互隔离,互不影响的,基于这一理念,组件每复用一次,data数据就会被复制一次,、

也就是说如果data是一个函数的话,那么我们每次创建一个新的实例之后,就会调用一个新的data函数。也就是给每一个data数据定义一个新的内存地址。这样的话,修改A而不会影响B.

function Person() {
  this.data = this.data();
}

Person.prototype.data = function() {
  return {
    name: 'itclanCoder',
  };
};

var p1 = new Person();
var p2 = new Person();

p1.data.name = 'A'; // A
console.log(p1.data.name); // A
console.log(p2.data.name); // itclanCoder

并且

如果当data是一个对象的话,在Vue中是会报错的

export default {
  data() {
      name: 'itclanCoder',
  },
};

在这里插入图片描述

要了解函数和对象之间的区别:

Object是引用数据类型,如果不用function返回,每个组件的data都是内存的同一个地址,一个数据改变了其他也改变了;

JavaScript只有函数构成作用域(注意理解作用域,只有函数{}构成作用域,对象的{}以及if(){}都不构成作用域),data是一个函数时,每个组件实例都有自己的作用域,每个实例相互独立,不会相互影响。

总结:

组件中的data写成函数,数据是以函数的返回值形式定义的,每复用一次,就会产生一个新的data。创建一个新的私有空间,这样的话各个组件实例都有各自的实例,如果写成对象形式,就容易造成数据污染,使得所有组件实例之间共用一份data

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

vue中的data为什么是一个函数 的相关文章

随机推荐

  • vnc使用教程,快速上手的vnc批量管理使用教程

    在日常工作过程中 肯定有很多程序员小伙伴们会有vnc批量管理使用教程的需求吧 小编也一样 那大家是如何实现vnc批量管理的呢 接下来 我将会对快速上手的vnc批量管理使用教程作一个简单介绍 首先 xff0c 我使用的是IIS7服务器管理工具
  • vnc使用教程,超实用的vnc使用教程

    在工作中 xff0c 难免会使用到vnc 小编也一样 很多小伙伴也问过我这个问题 xff0c 什么样的vnc使用教程能做到简单快捷 那大家知道vnc使用过程中 xff0c 是如何实现简单快捷的呢 接下来 我将会对vnc使用教程作一个简单介绍
  • 百度数据可视化Sugar BI — 数据监控与预警(附保姆级教程)

    最近答主一直在用百度智能云的Sugar BI xff0c 于是把他家官网里几个非常实用的数据可视化最佳实践资料 xff0c 分享至知乎 xff0c 希望可以帮到各位朋友 数据监控是有效且及时的反馈出数据异常的一种手段 通过对数据的监控去观察
  • windows如何使用vnc,只需5步轻松掌握windows下使用vnc

    出门在外忘了带档案怎么办 xff1f FTP server 上头忘了开帐号怎么办 xff1f 这些麻烦的问题其实都可以靠 VNC 解决 IIS7服务器管理工具是一款免费的远程控制软件 xff0c 能让你轻松控制远程的计算机 xff0c 它可
  • vnc viewer安卓版,5步掌握vnc viewer安卓版的使用方法

    vnc viewer是针对安卓系统而开发的一款手机远程桌面连接电脑软件 xff0c 该软件需要配合pc端的vnc服务端使用 xff0c 当用户在电脑上开启了vnc服务端 xff0c 再通过vnc viewer就可以在手机上随意操作电脑 xf
  • vncviewer使用教程,6步掌握vncviewer的使用教程

    vnc viewer是一款远程控制的软件 xff0c 一般用于远程解决电脑故障或软件调试 xff0c 下文小编就为大家带来vnc viewer远程控制电脑的教程 xff0c 相信看了你就会使用它了 IIS7服务器管理工具能让你轻松控制远程的
  • 常见的ftp工具有哪些,分享8款常见的ftp工具

    市面上有很多ftp服务器软件 xff0c 但是功能参差不齐 xff0c 安全性太多没有保障 xff0c 小编也进了很多坑 xff0c 为了让您少走弯路 xff0c 今天给大家分享8款常见的ftp工具 每款都很有特色 xff0c 感兴趣的小伙
  • tftp命令怎么传输文件,5步掌握tftp命令的使用方法

    FTP让用户得以下载存放于远端主机的文件 xff0c 也能将文件上传到远端主机放置 tftp是简单的文字模式ftp程序 xff0c 它所使用的指令和FTP类似 IIS7服务器管理工具可以批量管理 定时上传下载 同步操作 数据备份 到期提醒
  • filezilla ftp设置,7步完成filezilla ftp设置

    FTP服务器 File Transfer Protocol Server 是在互联网上提供文件存储和访问服务的计算机 xff0c 它们依照FTP协议提供服务 FTP是文件传输协议 xff0c 就是专门用来传输文件的协议 这篇文章主要介绍fi
  • 8uftp无法取得目录列表,解决8uftp无法取得目录列表的问题只需4步

    最近发现自己买的香港空间出现一个很严重的问题 xff0c ftp连接时无法取得目录列表 xff0c 因为之前一直固定在一家买空间 xff0c 所以善良的我很自然的打电话给这位老朋友让他赶紧起床看一看 xff0c 当时是凌晨两点半 几分钟后
  • 大数据ftp软件,2步完成大数据ftp软件的连接与命令操作

    ftp软件是什么软件 xff0c 可能有人会回答说不知道 xff0c 因为一般只有从事网站管理的工作者会使用的多一点 但不是每个人生来就会的 xff0c 所以刚开始肯定都会学习怎么使用ftp软件 这篇文章就来告诉大家大数据ftp软件大数据f
  • PID算法控制平衡小车直立

    1 平衡小车直立控制 xff1a 如果我们要控制一根木棍在手上直立 xff0c 需要两个步骤 gt 托着木棒的手可以移动 gt 眼睛能看到木棒的倾斜角度和倾斜趋势 xff08 角速度 xff09 类比到平衡小车中 xff0c 同理想让小车保
  • 数据结构 - 链式队列

    1 链式队列 链式队列 xff1a 用链表形式实现的队列 链表结点为队列数据存储区 xff0c 链表结点包括两部分数据存储 区和指针存储区 数据存储区 xff1a 存放真实有效数据的区域 指针存储区 xff1a 存放下一个链表结点的地址 2
  • Sugar BI:如何在下钻中改变地图范围

    下钻是指在点击本图表的某一部分时 xff0c 可以打开一个新的图表或超链接 xff0c 进而查看与图表此部分相关的详细信息 Sugar BI支持无限层级的下钻 xff0c 只要下钻的弹出展示的图表也是支持下钻的 xff0c 就可以继续配置进
  • darknet_ros部署及测试

    一 darknet ros部署 1 创建ROS工作空间 span class token function mkdir span p catkin ws src span class token builtin class name cd
  • ensp 查看命令(display)

    ensp 查看命令 xff08 display xff09 span class token number 1 span display this span class token comment 查看当前配置过的命令 span span
  • 关于HTTP 和 HTTPS

    什么是http 超文本传输协议 Http xff0c HyperText Transfer Protocol 是互联网上应用最为广泛的一种网络协议 xff0c 设计Htto最初的目的是提供一种发布和接收HTML页面的方法 xff0c 他可以
  • 关于事件流的简单理解

    JS事件 1 首先 xff0c 什么是事件 xff1f JavaScript和Html发生交互是通过事件来实现的 xff0c 事件 xff0c 就是文档或浏览器窗口发生一些特定的交互的瞬间 2 什么是事件流 xff1f 事件流就是 xff0
  • Vue中引入自定义公共组件方法以及步骤

    什么是公共组件 xff0c 公共组件的使用场景 项目中如果多个页面都显示有相同的区域内容 xff0c 则该公共区域内容可以封装成公共组件进行使用 步骤 xff1a 1 创建自定义公共组件 xff0c 在src下的components目录中自
  • vue中的data为什么是一个函数

    首先 xff1a 组件是一个可复用的Vue实例 xff0c 一个组件被创建好之后 xff0c 就可能被用在各个地方 xff0c 而组件不管被复用多少次 xff0c 组件中data数据都应该是相互隔离 xff0c 互不影响的 xff0c 基于