vue 中哪些操作自动触发更新视图
vue 中哪些操作自动触发更新视图
vue数组对象修改触发视图更新
直接修改数组元素是无法触发视图更新的,如
this.array[0] = {name: 'meng',age: 22
}
修改array的length也无法触发视图更新,如
this.array.length = 2;
但是如果是直接修改数组中元素,而元素是个对象,可以直接修改对象的值 来自动更新视图。如下:
3数组对象直接修改属性,可以触发视图更新this.array[0].show = true;
this.array.forEach(function(item){item.show = true;
});
触发视图更新的方法有如下几种
1. Vue.set
可以设置对象或数组的值,通过key或数组索引,可以触发视图更新
数组修改
Vue.set(array, indexOfItem, newValue)
this.array.$set(indexOfItem, newValue)
对象修改
Vue.set(obj, keyOfItem, newValue)
this.obj.$set(keyOfItem, newValue)
2. Vue.delete
删除对象或数组中元素,通过key或数组索引,可以触发视图更新
数组修改
Vue.delete(array, indexOfItem)
this.array.$delete(indexOfItem)
对象修改
Vue.delete(obj, keyOfItem)
this.obj.$delete(keyOfItem)
3. 数组对象直接修改属性,可以触发视图更新
this.array[0].show = true;
this.array.forEach(function(item){item.show = true;
});
4. splice方法修改数组,可以触发视图更新
this.array.splice(indexOfItem, 1, newElement)
5. 数组赋值为新数组,可以触发视图更新
this.array = this.array.filter(...)
this.array = this.array.concat(...)
6. 用Object.assign或lodash.assign可以为对象添加响应式属性,可以触发视图更新
//Object.assign的单层的覆盖前面的属性,不会递归的合并属性
this.obj = Object.assign({},this.obj,{a:1, b:2})//assign与Object.assign一样
this.obj = _.assign({},this.obj,{a:1, b:2})//merge会递归的合并属性
this.obj = _.merge({},this.obj,{a:1, b:2})
7.Vue提供了如下的数组的变异方法,可以触发视图更新
push()
pop()
shift()
unshift()
splice()
sort()
reverse()
vue 中哪些操作自动触发更新视图相关推荐
- vue中获取/操作组件中的dom元素
最近刚做了一个项目,需要用到地图,选择的是腾讯地图,创建地图的时候,需要给地图创建函数中传入地图容器的id或者容器的dom元素,但是在调试过程中,发现怎么都无法获取dom元素,直接通过getEleme ...
- Vue Array数组操作(变异更新、替换)
今天小编写一下Array数组操作(变异更新.替换) 来个v-for和key小补充,方便了解接下来的课程 循环指令v-for补充: 使用v-for更新已渲染的元素列表时,默认用就地复用策略;列表数据修改 ...
- 使用jQuery中trigger()方法自动触发事件
一.常用事件 在页面加载完成时 自动触发input的点击事件,在移动端可以实现自动弹出输入法,获得焦点 $("input").trigger("click") ...
- vue中脚手架设置自动打开浏览器打开后地址为http://0.0.0.0:8080/
1.问题描述 在创建了一个vue-cli的时候,设置启动服务浏览器自动打开的时候,发生了如下图的情况 IP地址不是之前手动打开的loclhos:8080而是0.0.0.0:8080 解决方法 只能将最 ...
- chorme vue中使用audio自动播放问题
我这里是将audio文件放在static文件夹中,vue页面中直接引用: <audio class="audio" src="./static/audio/alar ...
- Vue 中使用 el-input 自动获取焦点和二次获取焦点问题
最近,碰到一个问题,就是输入框旁边有一个编辑按钮,点击时,才可以对输入框进行编辑: 要实现的效果: 为了方便输入,需要自动获取焦点,所以加入了autofocus,但是发现,只有第一个并且第一次点击才起 ...
- vue中使用vue-qrcode-reader自动检测并解码来自摄像机流的QR码
1.装包 npm install vue-qrcode-reader 2.在目标页面文件中/src/views/index.vue引入 import { QrcodeStream } from 'vu ...
- vue中赋值操作深入
直接对computed的变量进行赋值,这个操作说不行的,如果需要改变computed里面变量的值,需要改变这个变量里面依赖的变量,依赖的变量值发生了改变,computed里面就能监听到变化,自然而然c ...
- vue数组操作不更新视图问题
vue 观察数组的变异方法 更新视图 push() pop() shift() unshift() splice(i,n,arr) sort(xx) reverse() ex: app.book.pu ...
最新文章
- 面向业务和面向硬件编程
- Attempted relative import in non-package
- python脚本实例手机端-python链接手机用Python实现命令行闹钟脚本实例
- Linux之自动化部署
- 【项目管理】ITTO-风险管理
- 为什么SOFA RPC调用30s还不超时?
- 如何保持Oracle数据库优良性能
- Pod详解-生命周期-概述
- mysql在线增加字段_MySQL在线加字段实现原理
- Delphi XE 10.1 Can't bind address: Address already in use. Exiting.
- 分子动力学模拟软件_实惠的分子动力学模拟个人台式机装机和测试
- Android基础入门教程——7.6.3 基于TCP协议的Socket通信(2)
- 差分编码 matlab,差分编码FSK调制解调matlab源程序.doc
- RainMeter使用教程一篇
- 公司项目上线正规流程
- 手把手教你制作gif动图,一分钟轻松学会
- PHP的设计模式及场景应用介绍
- 思科C2960交换机的默认网关
- 机器学习中的Encoder和Decoder到底是什么
- SQL函数StDev与StDevP区别
热门文章
- 语音识别模块骚操作——基于LD3320的语音识别模块LD-V7——友军计划2
- 2020低压电工证考试及低压电工复审模拟考试
- https实现原理(SSL认证过程)
- Dom4j 解析 XML文件
- python 查找归档邮件_电子邮件归档的好处
- html英文读法,48个英语音标发音表
- Grub for DOS 的下载和使用_天涯何处(转载)
- 政府债券的发行与承销
- 求助:无线键鼠套装无法使用
- 两家超级工厂!德国成大赢家?英特尔170亿欧元造超级芯片工厂;瑞典电池巨头40亿欧元建电池超级工厂 | 美通社头条...