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 相关文章推荐
了解一点js的Eval函数
Jul 26 Javascript
js随机颜色代码的多种实现方式
Apr 23 Javascript
Node.js中的模块机制学习笔记
Nov 04 Javascript
针对后台列表table拖拽比较实用的jquery拖动排序
Oct 10 Javascript
javascript读取文本节点方法小结
Dec 15 Javascript
Vue系列:通过vue-router如何传递参数示例
Jan 16 Javascript
Web前端框架Angular4.0.0 正式版发布
Mar 28 Javascript
老生常谈javascript的面向对象思想
Aug 22 Javascript
vue.js移动端app之上拉加载以及下拉刷新实战
Sep 11 Javascript
基于element-ui组件手动实现单选和上传功能
Dec 06 Javascript
JS/HTML5游戏常用算法之碰撞检测 包围盒检测算法详解【圆形情况】
Dec 13 Javascript
详解JavaScript函数callee、call、apply的区别
Mar 08 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
php中{}大括号是什么意思
2013/12/01 PHP
php解析字符串里所有URL地址的方法
2015/04/03 PHP
php实现微信扫码自动登陆与注册功能
2016/09/22 PHP
php mysql_list_dbs()函数用法示例
2017/03/29 PHP
jQuery 动态酷效果实现总结
2009/12/27 Javascript
jquery 事件冒泡的介绍以及如何阻止事件冒泡
2012/12/25 Javascript
jQuery 获取兄弟元素的几种不错方法
2014/05/23 Javascript
js确认删除对话框适用于a标签及submit
2014/07/10 Javascript
Jquery $.getJSON 在IE下的缓存问题解决方法
2014/10/10 Javascript
JS判断是否360安全浏览器极速内核的方法
2015/01/29 Javascript
JavaScript中字符串(string)转json的2种方法
2015/06/25 Javascript
BootStrap selectpicker
2016/06/20 Javascript
Angularjs 制作购物车功能实例代码
2016/09/14 Javascript
JS实现table表格固定表头且表头随横向滚动而滚动
2017/10/26 Javascript
基于JavaScript 性能优化技巧心得(分享)
2017/12/11 Javascript
详解如何用babel转换es6的class语法
2018/04/03 Javascript
基于jQuery使用Ajax动态执行模糊查询功能
2018/07/05 jQuery
vue动画之点击按钮往上渐渐显示出来的实例
2018/09/29 Javascript
详解Vue之事件处理
2020/07/10 Javascript
Python学习笔记(一)(基础入门之环境搭建)
2014/06/05 Python
微信 用脚本查看是否被微信好友删除
2016/10/28 Python
浅谈python中的__init__、__new__和__call__方法
2017/07/18 Python
python模仿网页版微信发送消息功能
2018/02/24 Python
PyQT5 emit 和 connect的用法详解
2019/12/13 Python
Django Serializer HiddenField隐藏字段实例
2020/03/31 Python
python PIL模块的基本使用
2020/09/29 Python
CSS3实现彩色进度条动画的示例
2020/10/29 HTML / CSS
房屋继承公证书
2014/04/10 职场文书
网络编辑求职信
2014/04/30 职场文书
车辆委托书范本
2014/10/05 职场文书
教师作风建设剖析材料
2014/10/11 职场文书
教师党员学习十八届四中全会思想汇报
2014/11/03 职场文书
2015年学校党建工作总结
2015/05/19 职场文书
未婚证明格式
2015/06/15 职场文书
七年级作文之我的梦想
2019/10/16 职场文书
python实现三阶魔方还原的示例代码
2021/04/28 Python