vue将对象新增的属性添加到检测序列的方法


Posted in Javascript onFebruary 24, 2018

vue中将对象中新增的属性增加到检测序列中

deepCopy(o1, o2) { // 将o2的内容拷贝给data中的o1
   var key, i
   if (o2 instanceof Array) {
    for (i = 0; i < o2.length; i++) {
     if (o2[i] instanceof Array) {
      this.$set(o1, i, [])
      this.deepCopy(o1[i], o2[i])
     }
     else if (o2[i] instanceof Object) {
      this.$set(o1, i, {})
      this.deepCopy(o1[i], o2[i])
     }
     else {
      this.$set(o1, i, o2[i])
     }
    }
   }
   else if (o2 instanceof Object) {
    for (key in o2) {
     if (o2[key] instanceof Array) {
      this.$set(o1, key, [])
      this.deepCopy(o1[key], o2[key])
     }
     else if (o2[key] instanceof Object) {
      this.$set(o1, key, {})
      this.deepCopy(o1[key], o2[key])
     }
     else {
      this.$set(o1, key, o2[key])
     }
    }
   }
   else {
    o1 = o2
   }
}

由于 Vue 不允许动态添加根级响应式属性,所以你必须在初始化实例前声明根级响应式属性,哪怕只是一个空值

如果一个属性没有事先声明,后面再增加,他不能检测到变化,对于一些固定的结构,是可以检测到变化的。比如我知道一个obj里面必然有key1、key2属性,我可以事先初始化。如果这些东西是动态的,我没法事先声明。后面再增加,vue没法检测到变化了。

这时将你已经在data中声明的变量和你要赋给这个变量的值作为参数传进该函数就行了

以上这篇vue将对象新增的属性添加到检测序列的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jquery $.ajax()取xml数据的小问题解决方法
Nov 20 Javascript
Jquery异步请求数据实例代码
Dec 28 Javascript
javascript中IE浏览器不支持NEW DATE()带参数的解决方法
Mar 01 Javascript
Jquery实现仿腾讯微博发表广播
Nov 17 Javascript
jQuery判断是否存在滚动条的简单方法
Sep 17 Javascript
深入理解JS实现快速排序和去重
Oct 17 Javascript
Webpack中css-loader和less-loader的使用教程
Apr 27 Javascript
Node.js 使用递归实现遍历文件夹中所有文件
Sep 18 Javascript
JavaScript实现写入文件到本地的方法【基于FileSaver.js插件】
Mar 15 Javascript
Angular5中提取公共组件之radio list的实例代码
Jul 10 Javascript
AngularJS 事件发布机制
Aug 28 Javascript
JavaScript实现简单验证码
Aug 24 Javascript
jQuery实现碰到边缘反弹的动画效果
Feb 24 #jQuery
vue cli webpack中使用sass的方法
Feb 24 #Javascript
vue-cli常用设置总结
Feb 24 #Javascript
JS处理一些简单计算题
Feb 24 #Javascript
jQuery 改变P标签文本值方法
Feb 24 #jQuery
jQuery实现标签子元素的添加和赋值方法
Feb 24 #jQuery
通过js动态创建标签,并设置属性方法
Feb 24 #Javascript
You might like
MYSQL环境变量设置方法
2007/01/15 PHP
php中关于codeigniter的xmlrpc的类在进行数据交换时的类型问题
2011/07/03 PHP
PHP字符串的递增和递减示例介绍
2014/02/11 PHP
微信公众平台天气预报功能开发
2014/07/06 PHP
php使用parse_url和parse_str解析URL
2015/02/22 PHP
PHP+JS实现大规模数据提交的方法
2015/07/02 PHP
解决laravel 5.1报错:No supported encrypter found的办法
2017/06/07 PHP
php使用curl伪造来源ip和refer的方法示例
2018/05/08 PHP
utf8的编码算法 转载
2006/12/27 Javascript
JavaScript代码生成PDF文件的方法
2016/02/26 Javascript
基于JavaScript实现跳转提示页面
2016/09/24 Javascript
bootstrap模态框跳转到当前模板页面 框消失了而背景存在问题的解决方法
2020/11/30 Javascript
移动端界面的适配
2017/01/11 Javascript
js input输入百分号保存数据库失败的解决方法
2018/05/26 Javascript
vue使用中的内存泄漏【推荐】
2018/07/10 Javascript
layui的table单击行勾选checkbox功能方法
2018/08/14 Javascript
vue-cli webpack 引入swiper的操作方法
2018/09/15 Javascript
javascript中toFixed()四舍五入使用方法详解
2018/09/28 Javascript
怎样在vue项目下添加ESLint的方法
2019/05/16 Javascript
了解javascript中let和var及const关键字的区别
2019/05/24 Javascript
Vue内部渲染视图的方法
2019/09/02 Javascript
JS数组方法join()用法实例分析
2020/01/18 Javascript
Vue 按照创建时间和当前时间显示操作(刚刚,几小时前,几天前)
2020/09/10 Javascript
[08:17]Ti9 现场cosplay
2019/09/10 DOTA
Python连接phoenix的方法示例
2017/09/29 Python
解决python大批量读写.doc文件的问题
2018/05/08 Python
pip安装时ReadTimeoutError的解决方法
2018/06/12 Python
基于SQLAlchemy实现操作MySQL并执行原生sql语句
2020/06/10 Python
Python加载数据的5种不同方式(收藏)
2020/11/13 Python
python实现发送邮件
2021/03/02 Python
Hotels.com爱尔兰:全球酒店预订
2017/02/24 全球购物
地球鞋加拿大官网:Earth Shoes Canada
2020/11/17 全球购物
汉语言文学毕业生自荐信范文
2014/03/24 职场文书
先进工作者申报材料
2014/12/23 职场文书
2016应届毕业生实习评语
2015/12/01 职场文书
SpringBoot项目中控制台日志的保存配置操作
2021/06/18 Java/Android