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 相关文章推荐
IE之动态添加DOM节点触发window.resize事件
Jul 27 Javascript
url地址自动加#号问题说明
Aug 21 Javascript
javascript排序函数实现数字排序
Jun 26 Javascript
AngularJs  Using $location详解及示例代码
Sep 02 Javascript
vue多种弹框的弹出形式的示例代码
Sep 18 Javascript
Parcel.js + Vue 2.x 极速零配置打包体验教程
Dec 24 Javascript
vue 项目常用加载器及配置详解
Jan 22 Javascript
vue实现图片滚动的示例代码(类似走马灯效果)
Mar 03 Javascript
Vue结合后台导入导出Excel问题详解
Feb 19 Javascript
微信小程序swiper左右扩展各显示一半代码实例
Dec 05 Javascript
vue简单封装axios插件和接口的统一管理操作示例
Feb 02 Javascript
vue基础知识--axios合并请求和slot
Jun 04 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
Symfony2学习笔记之插件格式分析
2016/03/17 PHP
php while循环控制的简单实例
2016/05/30 PHP
php判断是否连接上网络的方法实例详解
2016/12/14 PHP
PHP实现通过文本文件统计页面访问量功能示例
2019/02/13 PHP
PHP中上传文件打印错误错误类型分析
2019/04/14 PHP
关于div自适应高度/左右高度自适应一致的js代码
2013/03/22 Javascript
jquery属性过滤选择器使用示例
2013/06/18 Javascript
Jquery实现搜索框提示功能示例代码
2013/08/13 Javascript
加载列表时jquery获取ul中第一个li的属性
2014/11/02 Javascript
JS实现二叉查找树的建立以及一些遍历方法实现
2017/04/17 Javascript
NodeJs模拟登陆正方教务
2017/04/28 NodeJs
ES6中参数的默认值语法介绍
2017/05/03 Javascript
JS实现的简单标签点击切换功能示例
2017/09/21 Javascript
React中的render何时执行过程
2018/04/13 Javascript
支付宝小程序tabbar底部导航
2018/11/06 Javascript
webpack3升级到webpack4遇到问题总结
2019/09/30 Javascript
NUXT SSR初级入门笔记(小结)
2019/12/16 Javascript
Vue实现省市区三级联动
2020/12/27 Vue.js
用Python制作简单的朴素基数估计器的教程
2015/04/01 Python
Django如何实现内容缓存示例详解
2017/09/24 Python
python中通过预先编译正则表达式提高效率
2017/09/25 Python
如何通过Django使用本地css/js文件
2020/01/20 Python
python中复数的共轭复数知识点总结
2020/12/06 Python
New Balance俄罗斯官方网上商店:购买运动鞋
2020/03/02 全球购物
商铺租赁意向书
2014/04/01 职场文书
应聘销售主管的求职信
2014/04/26 职场文书
信息管理专业自荐书
2014/06/05 职场文书
党员示范岗材料
2014/12/19 职场文书
母亲节感言
2015/08/03 职场文书
创业计划书之农家乐
2019/10/09 职场文书
sass 常用备忘案例详解
2021/09/15 HTML / CSS
python 标准库原理与用法详解之os.path篇
2021/10/24 Python
MySQL实现配置主从复制项目实践
2022/03/31 MySQL
MySQL数据库Innodb 引擎实现mvcc锁
2022/05/06 MySQL
python运行脚本文件的三种方法实例
2022/06/25 Python
如何解决flex文本溢出问题小结
2022/07/15 HTML / CSS