$set()的正确使用方式
vue给对象新增属性,并触发视图更新
如下代码:给student对象新增age属性
data () {
return {
student: {
name: '',
sex: ''
}
}
}
众所周知,直接给student赋值操作,虽然可以新增属性,但是不会触发视图更新
mounted () {
this.student.age = 24
}
原因是:受 ES5 的限制,Vue.js 不能检测到对象属性的添加或删除。因为 Vue.js 在初始化实例时将属性转为 getter/setter,所以属性必须在 data 对象上才能让 Vue.js 转换它,才能让它是响应的。
要处理这种情况,我们可以使用$set()方法,既可以新增属性,又可以触发视图更新。
但是,值得注意的是,网上一些资料写的$set()用法存在一些问题,导致在新接触这个方法的时候会走一些弯路
错误写法:this.$set(key,value)
mounted () {
this.$set(this.student.age, 24)
}
正确写法:this.$set(this.data,”key”,value’)
mounted () {
this.$set(this.student,"age", 24)
}
项目实例
updateTimeformat (val, index) {
let time = val
let d = new Date(time)
this.updateTimeArr[index] = formatDate(d, 'yyyy-MM-dd hh:mm:ss');
this.$set(this.updateTimeArr, index, this.updateTimeArr[index]);
},
随机推荐
- 方差+标准差+四分位数+z-score公式
一.方差公式 $S^2 = \frac{1}{N}\sum_{i=1}^{N}(X_i - \mu)^2 = \frac{1}{N}[(X_1-\mu)^2 + (X_2-\mu)^2 + ... + ...
- yarn-RM-check-by-curl
#!bin/bash SELF_DIR="$( cd "$( dirname "$0" )" && pwd )" #grep ...
- Docker数据卷
1.volume操作命名:docker volume Usage: docker volume COMMAND Manage Docker volumes Options: --he ...
- 【实战】Docker入门实践二:Docker服务基本操作 和 测试Hello World
操作环境 操作系统:CentOS7.2 内存:1GB CPU:2核 Docker服务常用命令 docker服务操作命令如下 service docker start #启动服务 service doc ...
- 第二周作业-web后台应用开发与xml
web后台: 网站前台和网站后台通常是相对于动态网站而言,即网站建设是基于数据库开发 的网站.基于带数据库开发的网站,一般分网站前台和网站后台.网站前台是面向网站访问用户的,通俗的说也就是给访问网站的 ...
- 131A
#include <stdio.h> #include <string.h> #include <stdbool.h> #define MAXSIZE 105 in ...
- data日期转化
eg: var time="2018-05-19T08:04:52.000+0000"; var d = new Date(time); var times=d.getF ...
- PHP GZ压缩与解压
/*将字符串添加至GZ文件*/ function gz_str($str,$gz_name){ $fp = gzopen ($gz_name, 'w9'); gzwrite ($fp, $str); ...
- python安装simplejson
import simplejson 报错:ImportError: No module named simplejson simplejson是ansible一个很重要的依赖,经测试在python 2 ...
- JAVA:IDEA安装、创建项目、tomcat配置、maven配置(1)
一.安装 JDK安装自行百度,IDEA安装: IDEA安装包下载:https://www.jetbrains.com/idea/download/ 安装过程一路默认,需要选择的就勾选 .java之类的 ...