一、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 更改数组中的值,页面不刷新问题。解决方法+原理说明的更多相关文章

  1. vue更改数组中的值

    根据下标更改时 vm为新建的vue对象 ind为数组 第一个e为在数组ind中e索引位置 第二个e为更改为值e vm.$set(vm.ind,e,e) 常规更改 arr为数组 //添加 arr.pus ...

  2. WordPress更改“固定链接”后 ,页面出现404的解决方法

    一.Web服务器对应的是Nginx 解决方案:修改linux服务器下Nginx的配置文件,目录为:/usr/local/nginx/conf/nginx.conf, 也可以直接使用命令nginx -t ...

  3. vue项目中,更改数组元素的值,视图没有实时更新?

    问题背景: export default { data(){ showItems: [false, false, false, false] }, methods: { showItem(index) ...

  4. JS去除数组中重复值的四种方法

    JS去除数组中重复值的四种方法 1 /// <summary>            o[this[i]] = "";  }      }       newArr.p ...

  5. Vue 改变数组中对象的属性不重新渲染View的解决方案

    Vue 改变数组中对象的属性不重新渲染View的解决方案 在解决问题之前,我们先来了解下 vue响应性原理: Vue最显著的一个功能是响应系统-- 模型只是一个普通对象,修改对象则会更新视图.受到ja ...

  6. PHP array_count_values() 函数用于统计数组中所有值出现的次数。

    定义和用法 array_count_values() 函数用于统计数组中所有值出现的次数. 本函数返回一个数组,其元素的键名是原数组的值,键值是该值在原数组中出现的次数. 语法 array_count ...

  7. PHP 中替换若干字符串字串为数组中的值,不用循环,非常高效

    替换某个字符串中的一个或若干个字串为数组中某些值 php本身有自带的函数,可以不用循环非常高效的实现其效果: 实例代码:   $phrase  = "You should eat fruit ...

  8. php 计算多维数组中所有值的总和

    php 内置函数 array_sum() 函数返回数组中所有值的总和,只能返回一维数组的总和: 计算多维数组所有值的和就要自定义函数了: function get_sum($array) { $num ...

  9. PHP 使用用户自定义的比较函数对数组中的值进行排序

    原文:PHP 使用用户自定义的比较函数对数组中的值进行排序 usort (PHP 4, PHP 5) usort —      使用用户自定义的比较函数对数组中的值进行排序 说明       bool ...

  10. PHP usort 使用用户自定义的比较函数对数组中的值进行排序

    From: http://www.php100.com/cover/php/2395.html usort (PHP 4, PHP 5) usort — 使用用户自定义的比较函数对数组中的值进行排序 ...

随机推荐

  1. windows 10中Microsoft Edge Beta登录账户提示:以管理员身份运行 Microsoft Edge 时不支持登录。请以非管理员身份重新启动 Microsoft Edge,然后重新尝试登录。的解决方案

    windows 10中Microsoft Edge Beta登录账户提示:以管理员身份运行 Microsoft Edge 时不支持登录.请以非管理员身份重新启动 Microsoft Edge,然后重新 ...

  2. 退役*CPCer的找实习总结

    从2月底开始到今天,我终于拿到了第一个也是唯一一个offer(字节跳动).找实习的过程告一段落,所以想记录一下这段时间的经历. 最开始找$meopass$学长内推了小马智行,很快就接到了面试通知(再次 ...

  3. ES6的总结的一些数组、字符串方法

    1.数组的方法 unshift() 数组头部添加内容 push() 数组尾部添加内容 pop() 数组尾部删除内容 shift() 数组头部删除内容 sort() 数组排序 a-b 升序 b-a 降序 ...

  4. springboot配置ssl变成https证书

    前段时间跳槽了,疫情期间啥也干,回想了这个项目当中的一些新接触的东西记下来,为了方便以后自己看,也给新手提供以下便利.如果这边篇随笔能够给你带来便利,小衲不胜荣幸,如果有错误也欢迎批评指正,大家共同学 ...

  5. 对NAN的认识

    NaN是个特殊的数值,它与任何值都不相等,包括它自己,NaN==NaN和NaN===NaN都是false,如果想测试某个数字是否为NaN,可以使用内置的函数isNaN(),如果是NaN则返回true, ...

  6. 题解[CF575E]Spectator_Riots

    题意 一个球场,可以看作 \(10^5\times10^5\) 的矩形,每个位置都是一个整点.一个位置 \((x,y)\) 位于球场内当且仅当 \(x\in[0,10^5]\and y\in[0,10 ...

  7. jekins+shell

    1.安装jekins,常规的有直接下载war包,或者安装docker版本的安装. 2.启动命令 #war版本启动 nohup java -jar jenkins.war --ajp13Port=-1 ...

  8. pure-ftpd

    1.安装服务 yum install epel-release yum -y install pure-ftpd 2.启动服务如果报错,看一下是否是缺库文件导致. locate libpq.so.5 ...

  9. 使用nvm实现自由切换nodejs版本

    首先安装使用nvm前需要删除卸载干净!!! 可以去GitHub安装最新的版本:https://github.com/nvm-sh/nvm 或者直接下载Windows的 releases版本安装:htt ...

  10. 宝塔404 Not Found的解决方法-重启大法也适合服务器

    本来以为服务器不是随时重启的,浪费了好几的时间配置ssl一直无法成功,后来处理404问题重启后,发现ssl也好使了. 以下引自连接 https://www.chichisvip.com/post/37 ...