当前位置:首页 > vue.js > 正文内容

最全的数据深度拷贝方法-vue版

自由小鸟11个月前 (07-13)vue.js867
judgeType(obj) {
  // tostring会返回对应不同的标签的构造函数
    const toString = Object.prototype.toString;
    const map = {
      '[object Boolean]': 'boolean',
      '[object Number]': 'number',
      '[object String]': 'string',
      '[object Function]': 'function',
      '[object Array]': 'array',
      '[object Date]': 'date',
      '[object RegExp]': 'regExp',
      '[object Undefined]': 'undefined',
      '[object Null]': 'null',
      '[object Object]': 'object',
    };
    if (obj instanceof Element) {
      return 'element';
    }
    return map[toString.call(obj)];
  },
  deepClone(data) {
      const type = this.judgeType(data);
      let obj;
      if (type === 'array'){
        obj = [];
      } else if (type === 'object') {
        obj = {};
      } else {
    // 不再具有下一层次
        return data;
      }
      if (type === 'array'){
        for (let i = 0, len = data.length; i < len; i++) {
          obj.push(this.deepClone(data[i]));
        }
      } else if (type === 'object') {
        // 对原型上的方法也拷贝了....
        for (const key in data) {
          obj[key] = this.deepClone(data[key]);
        }
      }
      return obj;
    }
  }

版权声明:本文由Web学习之路发布,如需转载请注明出处。

本文链接:https://webge.net/?id=140

“最全的数据深度拷贝方法-vue版” 的相关文章

vue做博客中的问题记录

vue做博客中的问题记录

1,全局变量,统一管理变量文件,路径如:../src/static/css/globle.scss<1>添加依赖 npm install sass-resources-loader --save-dev<2>在项目build文件夹里找到...

vue class style写法

class,第一种就是把判断的变量放在后面,前面就是判断之后要设置的class名称v-bind:class="{ active: isActive, 'text-danger': hasError }">data: {  isActive: tru...

vue-router 路由的配置

vue-router 路由的配置

最好定义一个专门的路由配置文件来管理路由地址  接下来在点击的元素上开始设置路由path接收的 链接地址 例如以下...

vue-router 路由几种模式,分别什么用法

vue-router 默认 hash 模式 .  http://music.163.com/#/friend还有一种是history模式。  http://music.163.com/friendhash模式背后的原理是onhashchange事件,...

vuex刷新状态消失的解决办法

vuex做数据管理非常好,但是唯一美中不足的地方,就是当页面刷新的时候状态保存不下来,但是工作业务中,常常会遇到,可能需要把状态保留下来的情况那在这种情况下可以使用方案:在 app.vue中的created函数中写如下代码:localstorage和sessionStorage都可以//在页面加载时...

vue3

vue3

安装vite?-Vite是vue作者开发的一款意图取代webpack的工具,其实原理是利用ES6的import会发送请求加载文件的特性,拦截这些请求,做一些预编译,省去webapck沉长的打包时间安装:npm install -D create-vite-app利用vite创建 vue3项目cre...