总结:

Vue监视数据的原理:
        1.vue会监视data中所有层次的数据
        2.如何监视对象中的数据?
            通过setter实现监视,且要在new Vue时就传入要检测的数据。
               (1)对象中后追加的属性,vue默认不做响应式的处理
               (2)如需给后添加的属性做响应式,请使用如下API:
                     Vue.set(target, propertName/index, value) 或
                     Vue.$set(target, propertName/index, value)
        3.如何监测数据中的数据?
            通过包裹数组更新元素的方法实现,本质就是做了两件事:
                (1)调用原生对应对应的方法对数组进行更新
                (2)重新解析模板,进而更新页面
        4.在Vue修改数组中的某一个元素一定要用如下方法:
            1.使用这些API:
               push():向数组末尾添加新元素
               pop():删除数组中最后一个元素
               shift():删除数组第一个元素
               unshift():在数组开头添加元素
               splice():往指定位置添加或删除元素
               sort():排序
               reverse:反转
            2.Vue.set() 和 vm.$set() 不能给vm或vm的根数据对象添加属性

 1 <!DOCTYPE html>
2 <html lang="en">
3 <head>
4 <meta charset="UTF-8">
5 <meta http-equiv="X-UA-Compatible" content="IE=edge">
6 <meta name="viewport" content="width=device-width, initial-scale=1.0">
7 <title>总结Vue数据监测</title>
8 <script type="text/javascript" src="../js/vue.js"></script>
9
10 </head>
11 <!-- 准备好一个容器 -->
12 <div id="root">
13 <h1>学生信息</h1>
14 <button @click="student.age++">年龄+1</button><br/><br/>
15 <button @click="addSex">添加性别属性,默认值:男</button><br/><br/>
16 <button @click="student.sex = '未知' ">修改性别</button><br/><br/>
17 <button @click="addFriend">在首位置添加一个朋友</button><br/><br/>
18 <button @click="updateFirstFriendName">修改第一个朋友的名字为:猪八戒</button><br/><br/>
19 <button @click="addHobby">添加一个爱好</button><br/><br/>
20 <button @click="updateFirstHobby">修改第一个爱好为:敲代码</button>
21 <h3>姓名:{{student.name}}</h3>
22 <h3>年龄:{{student.age}}</h3>
23 <h3 v-show="student.sex">性别:{{student.sex}}</h3>
24 <h3>爱好:</h3>
25 <ul>
26 <li v-for="(h,index) in student.hobby" :key="index">
27 {{h}}
28 </li>
29 </ul>
30 <h3>朋友们:</h3>
31 <ul>
32 <li v-for="(f,index) in student.friends" :key="index">
33 {{f.name}}--{{f.age}}
34 </li>
35 </ul>
36 </div>
37 </body>
38 <script type="text/javascript">
39 Vue.config.productionTips = false //阻止vue在启动时生成生产提示
40 const vm = new Vue({
41 el:"#root",
42 data:{
43 student:{
44 name:'tom',
45 age:18,
46 hobby:['逛街','打球','k歌'],
47 friends:[
48 {name:'tony',age:22},
49 {name:'jerry',age:28},
50 ]
51 }
52 },
53 methods: {
54 addSex(){
55 // Vue.set(this.student,'sex','男')
56 this.$set(this.student,'sex','男')
57 },
58 addFriend(){
59 this.student.friends.unshift({name:'nancy',age:'30'})
60 },
61 updateFirstFriendName(){
62 this.student.friends[0].name = '猪八戒'
63 },
64 addHobby(){
65 this.student.hobby.push('学习')
66 },
67 updateFirstHobby(){
68 //this.student.hobby.splice(0,1,'敲代码')
69 //Vue.set(this.student.hobby,0,'敲代码')
70 this.$set(this.student.hobby,0,'敲代码')
71 }
72 },
73 })
74 </script>
75 </html>

13_总结Vue数据监测的更多相关文章

  1. vue 中监测滚动条加载数据(懒加载数据)

    vue 中监测滚动条加载数据(懒加载数据) 1:钩子函数监听滚动事件: mounted () { this.$nextTick(function () { window.addEventListene ...

  2. 利用InfluxDB和Grafana搭建数据监测的仪表盘

    InfluxDB的介绍及安装 InfluxDB是支持持续写入的时序数据库,常用于监测系统所需要的数据的存储. 官网的详细安装步骤 https://docs.influxdata.com/influxd ...

  3. 西安电话面试:谈谈Vue数据双向绑定原理,看看你的回答能打几分

    最近我参加了一次来自西安的电话面试(第二轮,技术面),是大厂还是小作坊我在这里按下不表,先来说说这次电面给我留下印象较深的几道面试题,这次先来谈谈Vue的数据双向绑定原理. 情景再现: 当我手机铃声响 ...

  4. Vue数据双向绑定原理及简单实现

    嘿,Goodgirl and GoodBoy,点进来了就看完点个赞再go. Vue这个框架就不简单介绍了,它最大的特性就是数据的双向绑定以及虚拟dom.核心就是用数据来驱动视图层的改变.先看一段代码. ...

  5. 【学习笔记】剖析MVVM框架,简单实现Vue数据双向绑定

    前言: 学习前端也有半年多了,个人的学习欲望还比较强烈,很喜欢那种新知识在自己的演练下一点点实现的过程.最近一直在学vue框架,像网上大佬说的,入门容易深究难.不管是跟着开发文档学还是视频教程,按步骤 ...

  6. 由自定义事件到vue数据响应

    前言 除了大家经常提到的自定义事件之外,浏览器本身也支持我们自定义事件,我们常说的自定义事件一般用于项目中的一些通知机制.最近正好看到了这部分,就一起看了下自定义事件不同的实现,以及vue数据响应的基 ...

  7. Vue 数据响应式原理

    Vue 数据响应式原理 Vue.js 的核心包括一套“响应式系统”.“响应式”,是指当数据改变后,Vue 会通知到使用该数据的代码.例如,视图渲染中使用了数据,数据改变后,视图也会自动更新. 举个简单 ...

  8. vue数据双向绑定原理

    vue的数据双向绑定的小例子: .html <!DOCTYPE html> <html> <head> <meta charset=utf-> < ...

  9. vue数据传递--我有特殊的实现技巧

    最近碰到了比较多的关于vue的eventBus的问题,之前定技术选型的时候也被问到了,vuex和eventBus的使用范围.所以简单的写一下.同时有一种特殊的实现方案. 有这么几种数据传递方式,vue ...

  10. vue数据双向绑定的原理、虚拟dom的原理

    vue数据双向绑定的原理https://www.cnblogs.com/libin-1/p/6893712.html 虚拟dom的原理https://blog.csdn.net/u010692018/ ...

随机推荐

  1. javascript import maps 特性现已被全部主流浏览器支持

    值得庆祝 Import maps 特性现在可以在全部三个主要浏览器内使用 现在主流现代web 应用 引入和利用javascript 是通过 Es module 模块实现. 在开发javascript上 ...

  2. OkHttp请求耗时统计

    目录介绍 01.先提问一个问题 02.EventListener回调原理 03.请求开始结束监听 04.dns解析开始结束监听 05.连接开始结束监听 06.TLS连接开始结束监听 07.连接绑定和释 ...

  3. ARouter路由解析

    目录介绍 01.原生跳转实现 02.实现组件跳转方式 2.1 传统跳转方式 2.2 为何需要路由 03.ARouter配置与优势 04.跨进程组件通信 4.1 URLScheme 4.2 AIDL 4 ...

  4. [Java]小功能

    [版权声明]未经博主同意,谢绝转载!(请尊重原创,博主保留追究权) https://blog.csdn.net/m0_69908381/article/details/130858061 出自[进步* ...

  5. ChatGPT 指令大全

    1.写报告 报告开头 我现在正在 报告的情境与目的 .我的简报主题是 主题 ,请提供 数字 种开头方式,要简单到 目标族群 能听懂,同时要足够能吸引人,让他们愿意专心听下去. 我现在正在修台大的简报课 ...

  6. C# 二维码生成、识别

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...

  7. 才储性格测试(INTJ 专家型——追求能力与独立)

    INTJ 专家型--追求能力与独立 一.你的荣格理论图形 二.基本描述 才储分析:您的性格类型倾向为" INTJ "(内向 直觉 思维 判断 倾向度: I60 N56 T74 J5 ...

  8. redis的延迟双删策略

    1,redis数据为什么会存在和数据库数据不一致的问题 在多线程并发情况下,假设有两个数据库修改请求,为保证数据库与redis的数据一致性,修改请求的实现中需要修改数据库后,级联修改redis中的数据 ...

  9. HTTPS加密套件的笔记

    本文于2016年5月份完成,发布在个人博客网站上. 考虑个人博客因某种原因无法修复,于是在博客园安家,之前发布的文章逐步搬迁过来. 按照如下配置(适用于Tomcat 7.0.x),为Tomcat启用了 ...

  10. OpenHarmony Meetup北京站招募令

    OpenHarmony Meetup城市巡回北京站火热来袭!!日期:2023年11月25日14:00地点:中国科学院软件园区五号楼B402与OpenHarmony技术大咖近距离互动,分享技术见解,结交 ...