IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> 2021/10/14 北京 Vue.set,vm.$set 和数组响应式变化 -> 正文阅读

[JavaScript知识库]2021/10/14 北京 Vue.set,vm.$set 和数组响应式变化

来看一种情况,当年我是这么写的,现在客户需要添加一个性别sex属性

student{
name:'',
age:''
}

在控制台上,直接这么写,发现在页面里并不能显示出男。不能做到响应式数据绑定

vm._data.studet.sex='男'

?还记得嘛,vue里每一个data里的属性vue都给它了set和get方法。

那逻辑上来说我们也给sex属性一个set方法是不是就好使了?

来试试,怎么给,看下图

Vue.set(vm._data.student,'sex','男')

页面有变化了,帅气!

别激动,还有第二种写法

vm.$set(vm._data.student,'sex','女')

?这就满足了?再来点让你更满足

记不记得vue给你做了数据代理,那下面这行代码将会输出true,所以上面那俩种方法都是可以简写的

vm._data.student===vm.student
//输出 true

但是也有一个美中不足,就是不允许添加一个响应式的数据到vue的实例上,举例如下:

Vue.set(vm._data,'leader','一个帅气的男子')

加了就会报一片红

?也就是说 Vue只能这么这么做,像下面图片里说的那样

数组怎么实现响应式呢?

结论是,数组只能通过下面这7种操作数组的方法来实现响应式

?你说我不信?那我们来试试。在控制台把hobby数组的第一项元素从‘抽烟’改为‘学习’

vm._data.student.hobby[0]='学习'

此时我们再瞄一眼,用vm._data.student.hobby,打印到控制台看一下。hobby数组确实发生变化了,可是页面就是没响应。为啥?因为数组必须通过那7个函数才能响应式变化

?放在代码里就是这样的:下面这一行代码,没有用那7个方法,所以并不能实现数据响应式变化

38 this.person[0]={id:'001',name:'马老师',age:'50',sex:'男'}

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2021-10-16 19:33:27  更:2021-10-16 19:35:37 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 23:07:39-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码