vue data数据修改_VUE的数据响应式

6d042b9c2e74b8212938b12345b80da8.png

什么是数据响应式?

const vm =newVUE({data:{n:0}})

上面的代码中,如果修改vm.n,那么UI中的n就会通过变化来响应我,这就是数据响应式。

VUE对data做了什么?

当给一个vue实例传入data的时候,vue内部会对传入的data添加监听和代理。

大概工作原理为:

  1. 传入data
  2. vue把原本的data用一个newdata保存下来
  3. newdata中的属性会替换掉原来的data,(监听过程)
  4. 修改data值
  5. 由于data已经被监听,实际上修改的是newdata的内容
  6. newdata会把修改后的数据传给data(代理过程)
  7. 最后把结果返回给vm

怎么做到监听和代理?

使用Object.defineProperty可以给对象添加属性和getter/setter来监控数据的读写。具体使用方法:

Object.defineProperty()​developer.mozilla.org
9380a3d113f88c9e59a583e9b5e939b4.png

修改了原来data中不包含的key怎么办?

由于这个key没有被VUE监听,不能正常的更新UI。

VUE提供了一个方法来添加新的key,使用Vue.set或者this.$set来新增key,例如:

this.$set(this.object, 'newkey', 100)

data中有数组呢?

如果data中包含数组,我们又想把新数据插入数组怎么办?我们不能提前声明好所有的key,一个个set又太麻烦。这可如何是好?

VUE篡改了数组的API,直接调用这些被改动过的API就会更新UI,具体如下:

https://cn.vuejs.org/v2/guide/list.html#%E5%8F%98%E6%9B%B4%E6%96%B9%E6%B3%95​cn.vuejs.org

以上就是我在学习过程中理解的VUE的数据响应式,观点仅供参考,如有错误欢迎指正。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/486682.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux使用vim开启文档,linux 配置 直接用VIM默认打开文件

方法一:主要 是把gedit 默认打开的文件 都改成 vim了 此方法有缺陷。推荐使用 方法二 可以指定 哪种类型文件 用VIM 默认打开。两种方法都实现了 方便打开文件 摆脱了用VIM编码 打开文件还要 输入 烦长的路径,配置如下:方法一:把所有 默认 用 gedit 打开…

C#多线程技术总结(异步)

我这里针对现有的C#多线程技术进行一个汇总,一是复习,二是方便索引,文章部份知识点来源于网络,非本人原创。 一、并行(异步): 1.System.Threading.Tasks命名空间下的(TPL): 1.1&…

hutool的定时任务不支持依赖注入怎么办_设计一个任务调度算法,时间轮算法,比优先队列更高效...

当年我还是个学生的时候,有一次去参加欢聚时代的一个面试,有一道面试题记忆尤新,让你来实现一个定时任务,你会怎么做?为了简化问题,我们只用考虑内存方案,不用考虑数据持久化。数组法最简单的&a…

蜂鸟开发板 linux,蜂鸟E203系列——Linux下运行hello world例程

创建程序在 ~/hbird-e-sdk-master/software 路径下创建一个“helloworld”中文件夹在 ~/hbird-e-sdk-master/software/helloworld 路径下创建文件“helloworld.c”内容如下:#includeint main(void){printf("hello world!");printf(…

全景解密量子信息技术:高层集中学习,国家战略,三大领域一文看懂

来源:智东西 内参来源:中国信通院 IPRdaily中文网10月16日下午,高层就量子科技研究相关前景举行了一次会议,强调当今世界正经历百年未有之大变局,科技创新是其中一个关键变量。要充分认识推动量子科技发展的重要性&am…

shell 脚本编写 if else then

shell 脚本编写 if else then if ....; then .... elif ....; then .... else .... fi 大多数情况下,可以使用测试命令来对条件进行测试。比如可以比较字符串、判断文件是否存在及是否可读等等…   通常用" [ ] "来表示条件测试。注意这里的空格很重要。…

mac怎么查看gitlab的注册邮箱_163电子邮箱怎么注册申请?手机号注册电子邮箱的小技巧...

电子邮箱帮助我们实现了无纸化,无需手写信件,通过电脑、手机输入,即可与收件人在网络上进行联系。电子邮箱的兴起,对于人与人之间的沟通和交流,增加了便捷性,促进了社会的发展与进步。目前的邮箱中&#xf…

c语言 switch案例,c语言switch case语句使用例子

c语言switch case语句使用例子发布时间:2020-04-23 11:48:53来源:亿速云阅读:421作者:小新这篇文章主要为大家详细介绍了c语言switch case语句使用例子,文中示例代码介绍的非常详细,具有一定的参考价值&…

把手机上的新浪微博客户端卸载了

因为我本身发微博的时候就是通过通过电脑上的浏览器发的,就连看别人发的微博也是通过浏览器发的,基本上也不怎么用手机客户端。反而是客户端总是推送各种新闻,我实在是没有这个需要,也完全不想被弹窗影响。 综上所述,因…

深度学习未来的三种方式

来源:海豚数据科学实验室深度学习的未来在于这三种学习模式,而且它们彼此之间密切相关:混合学习——现代深度学习方法如何跨越监督学习和非监督学习之间的边界,以适应大量未使用的无标签数据?复合学习——如何以创造性…

c 语言sort函数,C/c++语言sort函数如何使用

头文件是#include比如说数组a[5]{1,5,4,2,3};当你用sort(a,a5)时&#xff0c;就把数组a从小到大排序了for(i0;i<5;i){printf("%d \n",a[i]);}输出为1 2 3 4 5C语言中没有预置的sort函数。如果在C语言中&#xff0c;遇到有调用sort函数&#xff0c;就是自定义的一个…

android ocr识别源码_身份证识别OCR解决手动输入繁琐问题

随着互联网金融的的发展&#xff0c;越来越多的互联网金融公司都推出了自己的金融APP&#xff0c;这些APP都涉及到个人身份证信息的输入认证&#xff0c;如果手动去输入身份证号码和姓名&#xff0c;速度非常慢&#xff0c;且用户体验非常差。为了提高在手机移动终端上输入身份…

mybatis异常invalid comparison: java.util.Date and java.lang.String

原文链接&#xff1a;http://blog.csdn.net/wanghailong_qd/article/details/50673144 mybatis异常invalid comparison: java.util.Date and java.lang.String 开发中改动mapper文件后需要重新编译发布, 由于工程比较大非常耗时, 所以为方便快速测试干脆写了一个小java工程. 工…

计算机c语言等级考试PDF,国家计算机等级考试c语言精华.pdf

心之所向&#xff0c;所向披靡C 语言总复习顺序结构程序设计1.单字符输入输出&#xff1a;getchar(字符变量) &#xff1b;putchar(字符变量) &#xff1b;2.字符串输入输出&#xff1a;gets(字符数组名),puts(字符数组名)。3.格式化输入输出&#xff1a;(1)格式化输入&#xf…

什么是内卷?华为内部这篇文章读懂

来源&#xff1a;互联网坊间八卦&#xff08;ID:kekesil&#xff09;内卷的意思是明明已经靠近边界有个天花板&#xff0c;但却又不断自我激发&#xff0c;繁复化、精致化。概念的含糊其辞是无效讨论和跌入焦虑自我再生产困境的原因之一。判断内卷还是良性竞争的前置问题是回答…

锁屏界面显示某些设置已隐藏_iOS 14 隐藏功能,只要轻点手机背面就能截屏

关于 iOS 14 系统的一些功能我也为大家介绍了一些&#xff0c;iOS 14 已发布&#xff0c;界面大更新&#xff01;其实除了之外&#xff0c;iOS 14 系统还有许多隐藏的功能。那么今天我就为大家介绍 iOS 14 系统的隐藏功能之一&#xff1a;轻点背面。话不多说&#xff0c;我们先…

jacascript AJAX 学习

前言&#xff1a;这是笔者学习之后自己的理解与整理。如果有错误或者疑问的地方&#xff0c;请大家指正&#xff0c;我会持续更新&#xff01; AJAX 是 asynchronous javascript and XML 的简写&#xff0c;就是异步的 javascript 和 XML。这一技术能够向服务器请求额外的数据而…

android 自定义控件 焦点,android中设置控件获得焦点

android中&#xff0c;要使控件获得焦点&#xff0c;需要先setFocus,再requestFocus。以Button为例&#xff1a;btn.setFocusable(true);btn.setFocusableInTouchMode(true);btn.requestFocus();btn.requestFocusFromTouch();//获得失去焦点的监听器btn.setOnFocusChangeListen…

分享丨强化学习是针对优化数据的监督学习?

来源&#xff1a;AI科技大本营作者 | Ben Eysenbach、Aviral Kumar、Abhishek Gupta 编译 | 凯隐出品 | AI科技大本营&#xff08;ID:rgznai100&#xff09;强化学习&#xff08;RL&#xff09;可以从两个不同的视角来看待&#xff1a;优化和动态规划。其中&#xff0c;诸如REI…

stm32l0的停止模式怎么唤醒_手把手教你怎么利用旧电脑搭建NAS组建自己的黑群晖...

手把手教你怎么利用旧电脑搭建NAS组建自己的黑群晖Synology群晖科技&#xff08;Synology &#xff09;创立于 2000 年&#xff0c;自始便专注于打造高效能、可靠、功能丰富且绿色环保的 NAS 服务器&#xff0c;是全球少数几家以单纯的提供网络存储解决方案获得世界认同的华人企…