Vue 更改数组中的值,页面不刷新问题。解决方法+原理说明
一、Vue 更改数组中的值,页面不刷新问题
data{
hobby:["打游戏",“想静静”,“发呆”]
}
1、错误写法(页面不刷新):
this.hobby[0]="学习";
2、正确写法(页面刷新):
(1)方法1,调用列表操作函数更新数组数据 : this.hobby.splice(0,1,"学习");
(2)方法2,调用Vue的set方法更新数组数据:this.$set(this.hobby,0,"学习");
二、Vue监视数据的原理如下:
1、Vue 会监视数据中所有层次的数据
2、如何检测对象中的数据?
答:通过setter实现监视,且要在new Vue时就传入要监测的数据。
(1)对象中追加的属性,Vue 默认不做响应式处理;
(2)如需给后添加的属性做响应式,请使用如下API:
Vue.set(target,propertyName/Index,value);或 this.$set(target,propertyName/Index);
3、如何监测数组中的数据?
答:通过包裹数组更新元素的方法实现,本质就是做了两件事:
(1)调用原生对应的方法数组进行更新;
(2)重新解析模板,进行更新页面。
4、在Vue 修改数组中的某个元素,一定要用如下方法:
(1)使用这些API:push()、pop()、shift()、unshift()、splice()、sort()、rverse()
(2)Vue.set()或vm.$set()
push():往数组最后添加一个元素;
pop():删除数组最后一个元素;
shift():删除数组第一个元素;
unshift():往数组最前面添加一个元素
splice():操作某个元素,可修改数组中的元素
sort():排序
reverse():数组反转
5、特别注意:Vue.set()和vm.$set()不能给vm或vm的根数据对象添加属性!
6、直接操作数组,页面不更新;直接操作对象,页面更新
(1)this.student.hobby[0]="学习";(操作数组,页面不刷新)
(2)this.student.friend[0].name="张三";(操作对象,页面刷新)
视频讲解:https://www.bilibili.com/video/BV1Zy4y1K7SH?p=37&vd_source=60a28e8364654bee938864b1d19905ec
第35、36、37集
Vue 更改数组中的值,页面不刷新问题。解决方法+原理说明的更多相关文章
- vue更改数组中的值
根据下标更改时 vm为新建的vue对象 ind为数组 第一个e为在数组ind中e索引位置 第二个e为更改为值e vm.$set(vm.ind,e,e) 常规更改 arr为数组 //添加 arr.pus ...
- WordPress更改“固定链接”后 ,页面出现404的解决方法
一.Web服务器对应的是Nginx 解决方案:修改linux服务器下Nginx的配置文件,目录为:/usr/local/nginx/conf/nginx.conf, 也可以直接使用命令nginx -t ...
- vue项目中,更改数组元素的值,视图没有实时更新?
问题背景: export default { data(){ showItems: [false, false, false, false] }, methods: { showItem(index) ...
- JS去除数组中重复值的四种方法
JS去除数组中重复值的四种方法 1 /// <summary> o[this[i]] = ""; } } newArr.p ...
- Vue 改变数组中对象的属性不重新渲染View的解决方案
Vue 改变数组中对象的属性不重新渲染View的解决方案 在解决问题之前,我们先来了解下 vue响应性原理: Vue最显著的一个功能是响应系统-- 模型只是一个普通对象,修改对象则会更新视图.受到ja ...
- PHP array_count_values() 函数用于统计数组中所有值出现的次数。
定义和用法 array_count_values() 函数用于统计数组中所有值出现的次数. 本函数返回一个数组,其元素的键名是原数组的值,键值是该值在原数组中出现的次数. 语法 array_count ...
- PHP 中替换若干字符串字串为数组中的值,不用循环,非常高效
替换某个字符串中的一个或若干个字串为数组中某些值 php本身有自带的函数,可以不用循环非常高效的实现其效果: 实例代码: $phrase = "You should eat fruit ...
- php 计算多维数组中所有值的总和
php 内置函数 array_sum() 函数返回数组中所有值的总和,只能返回一维数组的总和: 计算多维数组所有值的和就要自定义函数了: function get_sum($array) { $num ...
- PHP 使用用户自定义的比较函数对数组中的值进行排序
原文:PHP 使用用户自定义的比较函数对数组中的值进行排序 usort (PHP 4, PHP 5) usort — 使用用户自定义的比较函数对数组中的值进行排序 说明 bool ...
- PHP usort 使用用户自定义的比较函数对数组中的值进行排序
From: http://www.php100.com/cover/php/2395.html usort (PHP 4, PHP 5) usort — 使用用户自定义的比较函数对数组中的值进行排序 ...
随机推荐
- 【Direct3D 12】配置编译环境
创建桌面应用程序 使用Visual Studio Community 2019创建一个桌面应用程序. 配置SDK版本.头文件.依赖库 右键单击创建的项目名称,选择Properties. 在Config ...
- 基于GPU 显卡在k8s 集群上实现hpa 功能
前言 Kubernetes 支持HPA模块进行容器伸缩,默认支持CPU和内存等指标.原生的HPA基于Heapster,不支持GPU指标的伸缩,但是支持通过CustomMetrics的方式进行HPA指标 ...
- Mac OS 如何批量转换图片格式
在苹果电脑中,如何快速批量地转换图片的格式.苹果电脑的预览程序,可以实现PNG.JPEG.JPEG-2000.PDF.TIFF格式之间的互换.这里以将PNG格式转换为JPEG格式为例. 工具/原料 ...
- 蓝牙mesh组网实践(mesh组网的评估与沁恒蓝牙芯片选型)
目录 沁恒的组网方式主要有2.4G私有协议组网和BLE mesh组网两大类.2.4G私有协议组网灵活性相对较高,对开发者的要求也相对较高.mesh组网本身有一系列规范,考虑到了可靠性.安全性.功能性等 ...
- ubuntu 安装SVN
s1: [sudo apt-get install subversion] s2:本地新建一个文件夹如SVN,在该文件夹下打开终端输入命令[svn co https://xxx/svn/xxx --u ...
- Vue2 中keyup.enter触发问题!
结合Element-UI开发的过程需求需要添加表单的默认Enter事件,但是当文本框或者元素没有获取焦点的时候回车事件未触发: 存在元素输入框修改语句:@keyup.native.enter 如果是f ...
- 【实验】B站资源免费下载技巧you-get
搭建环境, python pip3 install you-get 查看可以下载格式 you-get -i https://www.bilibili.com/video/BV1yN411d7KH?p ...
- 12组-Beta冲刺-2/5
一.基本情况 队名:字节不跳动 组长博客:https://www.cnblogs.com/147258369k/p/15594989.html Github链接:https://github.com/ ...
- (0524) rbf 格式 (intel)
http://blog.chinaaet.com/yuwoo/p/5100049901 https://blog.csdn.net/qq_38531460/article/details/107066 ...
- CB9328是一颗PA+LNA+Switch三合一的FEM 兼容S*8112Q
近日,工信部无线电管理局发布了<超宽带(UWB)设备无线电管理规定(征求意见稿)>(以下简称"新版<规定>").根据新版<规定>,未来国内UWB ...