总结:

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. Android TextView自动缩放能够完整显示出一行

    原文地址: Android TextView自动缩放能够完整显示出一行 - Stars-One的杂货小窝 app开发中,需要TextView可以在不同的屏幕大小要完整显示出文字,而不是显示省略号 可以 ...

  2. day11-实现Spring底层机制-01

    实现Spring底层机制-01 主要实现:初始化IOC容器+依赖注入+BeanPostProcessor机制+AOP 前面我们实际上已经使用代码简单实现了: Spring XML 注入 bean (S ...

  3. Android 开发Day9

    /** * Automatically generated file. DO NOT MODIFY */ package com.hui.tally; public final class Build ...

  4. 手把手制作mobileconfig文件,在iphone上创建h5网页桌面图标

    1,下载mobileconfig文件制作工具 下载地址:点击关注公众号,回复appicon, 获取工具的下载地址 新建配置描述文件,填写通用信息 填写Web Clip信息 点击菜单栏的导出,注意这里一 ...

  5. Deeplink实践原理分析

    目录介绍 01.先看一个场景 02.什么是DeepLink 03.什么是Deferred DeepLink 04.什么是AppLink 05.DeepLink和AppLink核心技术 06.DeepL ...

  6. 记录--Vue自动生成组件名

    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 unplugin-generate-component-name 一款用于以文件夹名或者setup标签写入名字来自动生成Vue组件名的插件 ...

  7. 记录--浏览器渲染15M文本导致崩溃怎么办

    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 最近,我刚刚完成了一个阅读器的txt文件阅读功能,但在处理大文件时,遇到了文本内容过多导致浏览器崩溃的问题. 一般情况下,没有任何样式渲染 ...

  8. 记录--九个超级好用的 Javascript 技巧

    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 前言 在实际的开发工作过程中,积累了一些常见又超级好用的 Javascript 技巧和代码片段,包括整理的其他大神的 JS 使用技巧,今天 ...

  9. API接口开发规范

    API接口是不同软件系统之间进行通信的重要方式,良好的API接口设计规范可以提高系统的可维护性.可扩展性和易用性.本文介绍了一套详细的API接口开发规范,包括命名规范.请求和响应规范.安全规范等内容, ...

  10. Nancy支持跨域请求

    public class NancyBootstrapper : DefaultNancyBootstrapper { /// <summary> /// nancy配置 /// < ...