vue给对象(数组)添加属性的时候,无法达到响应式的效果,页面无法即时更新
当我们给对象或者数组添加一个属性的时候,会发现通过打印,可以在控制台看见数据已经更新,但是页面却没有成功渲染上。
<template><div class="main-layout"><div v-for="(item, index) in data" :key="index">{{ item.name }}, {{ item.age }}</div><button @click="updateName">修改土豆的名字</button></div>
</template><script>
export default {data () {return {data: [{ name: '土豆', age: 1 },{ name: '马铃薯', age: 18 }]}},methods: {updateName () {const newName = { name: '小红', age: 1 }this.data[0] = newNameconsole.log(this.data[0])}}
}
</script>
解决方法 使用this.$set() / Vue.set()
调用方法:this.$set( target, key, value )
target:要更改的数据源(可以是对象或者数组)
key:要更改的具体数据
value :重新赋的值
updateName () {const newName = { name: '小红', age: 1 }// this.data[0] = newNamethis.$set(this.data, 0, newName)console.log(this.data[0])}
向响应式对象中添加一个属性,并确保这个新属性同样是响应式的,且触发视图更新。 它必须用于向响应式对象上添加新属性,因为 Vue 无法探测普通的新增属性
其实可以很明显的可以看到控制台打印出来的数据,就可以判断添加的属性是不是响应式
vue给对象(数组)添加属性的时候,无法达到响应式的效果,页面无法即时更新相关推荐
- vue 存储对象 不要监听_Vue源码解析----响应式原理
从很久之前就已经接触过了angularjs了,当时就已经了解到,angularjs是通过脏检查来实现数据监测以及页面更新渲染.之后,再接触了vue.js,当时也一度很好奇vue.js是如何监测数据更新 ...
- js给数组添加数据的方式/js 向数组对象中添加属性和属性值
参考:https://www.cnblogs.com/ayaa/p/14732349.html js给数组添加数据的方式有以下几种: 直接利用数组下标赋值来增加(数组的下标起始值是0) 例,先存在一个 ...
- js给对象动态添加属性的2种方法
js给对象动态添加属性的2种方法 需求: 要给每个课程添加一个判断鼠标是否hover 分析: 因为数据是动态渲染的,所以需要动态的给他添加一个flag标记,就得在数据渲染之前先拿到,然后再添加一个自己 ...
- vue给html动态添加属性,Vue中怎么动态添加类名?
能够向组件添加动态类名是非常强大的功能.它使我们可以更轻松地编写自定义主题,根据组件的状态添加类,还可以编写依赖于样式的组件的不同变体. 添加动态类名与在组件中添加 prop :class=" ...
- vue3中对对象增添属性也会加入到响应式
我们先来看看看vue2版本: vue2版本中对一个对象增添属性不会有响应式,需要通过set方法来进行控制,比如一下 点击 点击岁数按钮时,岁数不会显示到页面中去. 再来看看vue3版本: 这时点击 ...
- vue中给window对象上添加属性的方法
web页面通讯方法.window.open打开新页面,父子页面通讯的方法最直接的就是获取对方的window对象进行调用父子各自得属性及方法. 下面是整理的几种通讯得方法仅供参考 第一种 // 第一种方 ...
- Vue观察对象的子属性变化,wacth的deep使用
我们都已经知道,如何观察一个属性值的变化,然后做相应的操作.比如我有一个属性name,我希望在name改变的时候,弹出消息框. 代码如下: <template><div id=&qu ...
- vue 往对象中添加键值对_【Vue】Vue学习之混入
今天学习了Vue中的"混入"知识点,写篇文章用自己的语言来向自己解释它,如有不足还望指点. 混入(mixins): 混入提供了一种非常灵活的方式,来分发Vue组件中的可复用功能 - ...
- python-往对象中添加属性值
class Cat:pass 对象.属性 t = Cat() t.name = "张三" print(t.dict) 反射添加 setattr(t, "age" ...
最新文章
- 部署可扩展的目标检测管道:推理过程(上)
- C#之消息队列的简要说明
- Python time strptime()方法 时间操作
- 在线rss阅读聚合器lilina-0.7安装笔记
- 【OpenCV 例程200篇】07. 图像的创建(np.zeros)
- ~~堆(数据结构)(附模板题 AcWing 838. 堆排序)
- 聚焦大数据与智能时代:2016中国大数据应用大会将于7月举行
- 自动化通讯协定——现场总线
- c语言单链表怎么循环链表,链表之循环单链表(用C语言描述)
- C#实现Astar 算法以及导航系统
- 线程---同步---快乐影院小案例
- OAuth2.0系列四:OAuth2.0简化模式
- 余压监控系统在住宅小区的应用方案
- 毕业设计/论文答辩演讲稿通用模板
- 考研英语近义词与反义词·二
- 苹果屏幕录制没有声音_苹果手机屏幕不亮但有声音是怎么回事?不要慌,这样就可以解决...
- 多级弹出菜单jQuery插件ZoneMenu
- 黑盒测试与bug定位
- 如何在LibreOffice中使用所有者和用户密码保护文档和PDF文件
- 国嵌linux内核编程,linux内核--那些年看国嵌视频学习