IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> JS Symbol + Proxy 实现按照后端返回字段重组展示数据 -> 正文阅读

[JavaScript知识库]JS Symbol + Proxy 实现按照后端返回字段重组展示数据

需求:根据所给定的字段,组织打印信息,不同类型(type字段的数据返回字段不同,但要求给定的字段都要有中文名称匹配。没有给定的字段,不能多余出现。
旧实现思路:靠逻辑实现判断不同type字段,给baseItem塞数据。(局限性太强,代码中有太多写死的东西)
新实现思路:使用proxy拦截get操作,没有返回这个字段,直接获取则为undefined,判断undefined,返回一个Symbol类型的值。重新组成打印信息时,再判断是否为这个Symbol字段。

 exportItem = exportItem.map(item => {
        const iteProxy = new Proxy(item, {
          get: (target, propKey) => {
            if (propKey in target) {
              return target[propKey];
            } else {
              return notReturn;
            }
          }
        });
        const baseItem = {
          姓名: item.name,
          性别: item.gender,
          年龄: item.age,
        }
        // 旧写法
        /*if(iteProxy.type === '01'){
		 baseItem['字段1'] = item.name1;
		}
        if(iteProxy.type === '02'){
		 baseItem['字段2'] = item.name2;
		}
		*/
		// 新写法
        if (iteProxy.nickname !== notReturn) {
          baseItem['外号'] = item.nickname;
        }
        return baseItem;
      });

Symbol ES6新增基本数据类型

注意用法 ,没有new

 const objSymbol = Symbol('这里可以放解释性参数')

参考: mdn Symbol

Proxy

  1. Proxy 代理,可拦截对象的一些操作
const proxy = new Proxy(obj,{
		get:..;
		set:...
	}
);

参考:阮一峰老师的proxy讲解

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2021-10-26 12:07:25  更:2021-10-26 12:08:05 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/13 10:04:30-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码