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 相关文章推荐
DOM下的节点属性和操作小结
May 14 Javascript
LazyLoad 延迟加载(按需加载)
May 31 Javascript
javascript中定义私有方法说明(private method)
Jan 27 Javascript
javascript中callee与caller的区别分析
Apr 20 Javascript
Javascript操作表单实例讲解(下)
Jun 20 Javascript
利用Angularjs和bootstrap实现购物车功能
Aug 31 Javascript
Java  Spring 事务回滚详解
Oct 17 Javascript
BootStrap框架中的data-[ ]自定义属性理解(推荐)
Feb 14 Javascript
React+Webpack快速上手指南(小结)
Aug 15 Javascript
扫微信小程序码实现网站登陆实现解析
Aug 20 Javascript
JavaScript Array.flat()函数用法解析
Sep 02 Javascript
Vue router配置与使用分析讲解
Dec 24 Vue.js
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下用GD生成生成缩略图的两个选择和区别
2007/04/17 PHP
PHP常用开发函数解析之数组篇[未完结]
2012/07/30 PHP
谈谈关于php的优点与缺点
2013/04/11 PHP
PHP基于DateTime类解决Unix时间戳与日期互转问题【针对1970年前及2038年后时间戳】
2018/06/13 PHP
PHP pthreads v3下worker和pool的使用方法示例
2020/02/21 PHP
PHP文件打开关闭及读写操作示例解析
2020/08/06 PHP
ASP.NET jQuery 实例2 (表单中使用回车在TextBox之间向下移动)
2012/01/13 Javascript
jquery ajax的success回调函数中实现按钮置灰倒计时
2013/11/19 Javascript
JS中JSON对象和String之间的互转及处理技巧
2016/04/06 Javascript
浅谈DOCTYPE对$(window).height()取值的影响
2016/07/21 Javascript
EasyUI 结合JS导出Excel文件的实现方法
2016/11/10 Javascript
获取jqGrid中选择的行的数据
2016/11/30 Javascript
vue.js将unix时间戳转换为自定义时间格式
2017/01/03 Javascript
Bootstrap 下拉多选框插件Bootstrap Multiselect
2017/01/22 Javascript
jQuery阻止移动端遮罩层后页面滚动
2017/03/15 Javascript
js遍历添加栏目类添加css 再点击其它删除css【推荐】
2018/06/12 Javascript
PM2自动部署代码步骤流程总结
2018/12/10 Javascript
JS实现点击按钮随机生成可拖动的不同颜色块示例
2019/01/30 Javascript
Vue 实现把表单form数据 转化成json格式的数据
2019/10/29 Javascript
精读《Vue3.0 Function API》
2020/05/20 Javascript
python处理中文编码和判断编码示例
2014/02/26 Python
分享Python字符串关键点
2015/12/13 Python
Centos 升级到python3后pip 无法使用的解决方法
2018/06/12 Python
python 实现A*算法的示例代码
2018/08/13 Python
Python实现全排列的打印
2018/08/18 Python
利用纯CSS3实现tab选项卡切换示例代码
2016/09/21 HTML / CSS
清除canvas画布内容(点擦除+线擦除)
2020/08/12 HTML / CSS
教师档案管理制度
2014/01/23 职场文书
师范学院教师自荐书
2014/01/31 职场文书
优秀教师的感人事迹
2014/02/04 职场文书
管理工程专业求职信
2014/08/10 职场文书
党支部党的群众路线对照检查材料
2014/09/24 职场文书
工伤事故赔偿协议书范文
2014/09/24 职场文书
让世界充满爱观后感
2015/06/10 职场文书
幼儿园师德师风心得体会
2016/01/12 职场文书
《刷子李》教学反思
2016/02/20 职场文书