VUE中解决不能检测数组中基本数据类型的方法及$set的使用方法
2018-02-25 18:13
736 查看
在Vue中当你修改数组中一个基本类型的数值时,页面不会响应,也不会更新数据,但是元素是对象的时候可以检测并发生响应。如下例子,中数组arr的第一个元素再点击后重新赋值时页面没有响应。<template>
<div>
{{arr}}
<button @click="changeEle">更改数组[0]的值</button>
</div>
</template>
<script>
export default {
data() {
return {
arr: [1, 2, {
id: 1
}]
}
},
watch: {
arr: {
handler: function() {
},
deep: true
}
},
methods: {
changeEle() {
//this.arr[0] = 19; //这样vue不会去处理在数组中基本数据类型的观察setter/getter,同时触发视图更新,第一个参数不能是Vue的实例或者根属性,类似this.$data
//手动通知vue完成观察,this.$set(obj,propName,value)
this.$set(this.arr, 0, 19);
}
}
}
</script>
<style>
</style>
可以使用$set进行监视,以下是API
<div>
{{arr}}
<button @click="changeEle">更改数组[0]的值</button>
</div>
</template>
<script>
export default {
data() {
return {
arr: [1, 2, {
id: 1
}]
}
},
watch: {
arr: {
handler: function() {
},
deep: true
}
},
methods: {
changeEle() {
//this.arr[0] = 19; //这样vue不会去处理在数组中基本数据类型的观察setter/getter,同时触发视图更新,第一个参数不能是Vue的实例或者根属性,类似this.$data
//手动通知vue完成观察,this.$set(obj,propName,value)
this.$set(this.arr, 0, 19);
}
}
}
</script>
<style>
</style>
可以使用$set进行监视,以下是API
相关文章推荐
- asList的使用缺陷—不能将8种基本数据类型数组转换为列表
- Vue项目使用swiper做轮播图时,异步调用数据时导致图片不能滑动的解决方法
- asList 方法使用时避免传入基本类型的数组
- HashMap数据类型使用注意-不能使用基本数据类型
- ActionForm使用java.util.Date数据类型解决方法(转)
- 加强eclipse的使用技巧。可变参数。基本数据类型自动装箱和拆箱。枚举。反射。数组反射的应用。ArrayList和HashSet。JavaBean
- 使用的 SQL Server 版本不支持数据类型“date”的解决方法
- 作为引用数据类型,数组变量与基本数据类型变量的使用有哪些区别?
- javascript基本数据类型及类型检测常用方法小结
- 使用的 SQL Server 版本不支持数据类型“datetime2”的错误解决方法
- 使用ASP.NET AJAX异步调用Web Service和页面中的类方法(5):服务器端和客户端数据类型的自动转换:基本类型和枚举类型
- 【语言基础】c++ 基本数据类型与字节数组(string,char [] )之间的转化方法
- 使用ASP.NET AJAX异步调用Web Service和页面中的类方法(8):服务器端和客户端数据类型的自动转换:数组类型
- 【解决方法】iOS9 HTTP 不能正常使用的解决办法(数据无法加载)
- javascript中的基本数据类型以及类型检测的几种方法
- 使用的 SQL Server 版本不支持数据类型“date”的解决方法 (转)
- QT 自定义信号与信号槽方法及解决自定义数据类型或数组作为函数参数的问题
- JNI中基本类型数组的传递方法(无需拷贝数据!!!)
- 使用Gson解析Json数组遇到的泛型类型擦除问题解决方法
- 在Delphi下,使用线程向窗体发送动态数组数据的解决方法~