【vue2】近期bug收集与整理01

1d43f75f092a4050a8ce31e2d85f6868.gif

 🥳博       主:初映CY的前说(前端领域)

🌞个人信条:想要变成得到,中间还有做到!

🤘本文核心:记录博主在vue2中遇到过的坑,本文是博主的学习使用总结

目录

1登陆token的问题

2.组件没找到的原因

 3.父传子,子接收错误

4.tree组件的使用

5.nextTick处理组件缓存数据未清空的问题

6.给自定义组件绑定click点击事件失败

7.中英文键值的转换


1登陆token的问题

流程:收集检验-发请求-存入vuex-token本地化

通常我处理登录业务的时候流程是:给登录的那个按钮注册一个点击事件,点击的时候调用store中的actions触发请求,再调用mutations将我们的一个token进行本地化的存储。

思路是这样的没问题,可我们存的时候对于存token的位置,就需要注意下了。当我点击登录的时候需要将在发送的时候将token存入请求头中。

可有时候当我忘记写之后,查看network会提示我没有登录,为什么点击登录的时候没有登录呢?

(见下图)

 检查可知,我在发送请求的时候没有在请求拦截器中将token存入请求头中

写入请求重新发送请求查看:

 这个时候我们的登录业务就完成啦!


2.组件没找到的原因

我们组件使用的三步:导入、注册、引用。当我将这个组件导入时,下意识加上了{ } ,结果提示我组件导入失败。检查可知是我的注册的组件引入问题。当我把{ }删除之后就好了


 3.父传子,子接收错误

父传值给其他可以写三个参数type(类型),required(是否必须使用),default(默认值),下图为required写成了require


4.tree组件的使用

Tree组件 | Element

 这是官网的逻辑,下面的这个例子也是基于这个思想整合而成的。

逻辑:当pid与id相等的时候就把包含pid的这一项当作id这一项的子集

分析请求我们的一级数据与二级数据有什么特征,经分析得知:当pid与id相等的时候就把包含pid的这一项当作id这一项的子集。

  1. 传进来一个数组对象,定义一个空数组与对象来接收我们传递的值
  2. 遍历形参每一项遍历给每一项添加一个children空数组
  3. 将每一项的id拿出来作为我们对象的键,每一个item作为值
  4. 遍历我们的形参将有pid的项目收集(就是说它一定是某一项的子集)
  5. 根据pid与id关系,将有pid的项目将它加入我们的children中
  6. 如果没有pid则就是一级的
export function treeListData(list) {
// 1.定义列表与对象
  const treeList = []
  const obj = {}
  list.forEach(item => {
    if (!item.children) {
      item.children = []
    }
    obj[item.id] = item
  })
  console.log(obj, 'obj')// 遍历形参list每一项,将每一项的item.id中作为键,每一个item作为值

  // 循环
  list.forEach(item => {
  // 2.判断依据有pid就是父项,有就提取出来,并且把这一项添加到上级的children中
    const fatherItem = obj[item.pid]
    if (fatherItem) {
      fatherItem.children.push(item)
    } else {
      treeList.push(item)// 没有pid为最大的
    }
  })
  return treeList
}

5.nextTick处理组件缓存数据未清空的问题

拿页面中常见的弹窗来说,我们会封装一个dialog组件套起来我们form表单数据。当我正常收集/渲染数据关闭之后,第二次点开发现数据依旧是上次写/渲染的数据。解决办法:

  • 1.给数组绑定一个v-if属性,当我关闭时将弹窗改为false,这样做是可以,可频繁的创建组件/销毁组件会影响性能。
  • 2.给组件使用$nextTick,当我们获取到了数据再发送数据即可,这样就避免大量的新增销毁组件


6.给自定义组件绑定click点击事件失败

因为在自定义组件上注册的事件触发的是组件自定义的事件,需要加上.native修饰符


7.中英文键值的转换

在我们学习js的过程中,有的时候我们接收发送给后端的数据,需要我们提供一个对象,并且对象中的键与值都是中文,而我们这边只有键与值均为中文的对象数据与一份键的英文对应表。此时我们怎么将我们的中午的键值根据对应表转换成英文键,中文值呢?当然使用我们js中的方法啦!(Object.keys()、map()、foreach()等),好了,我们开始我的的案例讲解。
1.中文的键值对象

      arrList: [
        { 入职日期: 44505, 姓名: '老张', 工号: '9002', 手机号: '13800866258', 聘用形式: 2, 转正日期: 44821, 部门: '开发部' },
        { 入职日期: 44505, 姓名: '老王', 工号: '9008', 手机号: '13800866328', 聘用形式: 3, 转正日期: 44891, 部门: '人事部' },
        { 入职日期: 44505, 姓名: '老程', 工号: '9005', 手机号: '13800866952', 聘用形式: 1, 转正日期: 44892, 部门: '人事部' }]
    }

2.我们中英文键值对应表

 const mapInfo = {
        '入职日期': 'timeOfEntry',
        '手机号': 'mobile',
        '姓名': 'username',
        '转正日期': 'correctionTime',
        '工号': 'workNumber',
        '部门': 'departmentName',
        '聘用形式': 'formOfEmployment'
      }

思路:

  1.         找出所有的中文key
  2.         得到对应的英文key
  3.         拼接一个新对象: 英文key:每一项的中文值
 
    transExcel(results) {
      const mapInfo = {
        '入职日期': 'timeOfEntry',
        '手机号': 'mobile',
        '姓名': 'username',
        '转正日期': 'correctionTime',
        '工号': 'workNumber',
        '部门': 'departmentName',
        '聘用形式': 'formOfEmployment'
      }
      return results.map(item => {
        const enObj = {}// 存放英文键,中文值
        const zhKeys = Object.keys(item)// 得到的是每一项的键(中文)
        zhKeys.forEach(zhKey => {
          const enKey = mapInfo[zhKey]// 遍历mapInfo的键,得到英文的值
          if (enKey === 'timeOfEntry' || enKey === 'correctionTime') {
            enObj[enKey] = formatExcelDate(item[zhKey])
          } else {
            enObj[enKey] = item[zhKey]
          }
        })
        return enObj
      })
    },

 效果检查:


——期待大家的关注支持!你的肯定是我更新的最大动力——

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.kler.cn/a/7755.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

浏览器是如何工作的(1)

学习浏览器工作原理的好处:不但是前端面试的常考知识点,它还会辅助你的实际工作,学习浏览器的内部工作原理和个中缘由,对于我们做性能优化、排查错误都有很大的好处。 过程: 浏览器首先使用 HTTP 协议或者 HTTPS 协议…

【java进阶09:集合】泛型、增强for、Collections集合工具类

目录 集合 Collection List 泛型 增强for(foreach) Set简述 Map java.util.Collections集合工具类 复习review 集合 集合概述 什么是集合?有什么用? 数组实际上就是一个集合。集合实际上就是一个容器,可以来容纳其他类型…

网络编程DAY 1

字节序判断&#xff1a; #include <stdio.h>union test {char ch;// 0x78int num;// 0x12 34 56 78 };int main(int argc, char const *argv[]) {union test t;t.num 0x12345678;if(0x78 t.ch){printf("small endian.\n");}else{printf("big endian.\n…

五、页面切割技术,实现工作台

页面切割技术 1.<frameset>和<frame> <frameset>:用来切割页面 <frameset cols"20%,60%,20%"> 竖着把窗口切三部分 <frameset rows"20%,60%,20%"> 横着把窗口切三部分 <frame>&#xff1a;用来显示页面 <frame …

toArray转换 java.lang.ClassCastException

[toArray转换踩坑 java.lang.ClassCastException] 问题 List<String> auditOptions Lists.newArrayList(); //一系列灌数据操作 auditOption.add... String[] options (String[]) auditOptions.toArray();报错信息java.lang.ClassCastException: class [Ljava.lang.O…

【机器学习】主成分分析(PCA)算法及Matlab实现

【问题引入】 在许多领域的研究与应用中&#xff0c;往往需要对反映事物的多个变量进行大量的观测&#xff0c;收集大量数据以便进行分析寻找规律。多变量大样本无疑会为研究和应用提供了丰富的信息&#xff0c;但也在一定程度上增加了数据采集的工作量&#xff0c;更重要的是在…

用“劫富济贫”的思想来进行特征空间的数据增强

来源&#xff1a;投稿 作者&#xff1a;TransforMe 编辑&#xff1a;学姐 论文地址&#xff1a;https://arxiv.org/abs/2008.03673 代码&#xff1a;未公开 发表&#xff1a;ECCV2020 贡献 对于没有充分表达的尾部类则需要额外的知识来补充&#xff0c;所以作者利用头部的类无…

(数字图像处理MATLAB+Python)第四章图像正交变换-第二节:离散余弦变换和K-L变换

文章目录一&#xff1a;离散余弦变换&#xff08;Discrete Cosine Transform&#xff0c;DCT&#xff09;&#xff08;1&#xff09;一维DCTA&#xff1a;定义B&#xff1a;实例&#xff08;2&#xff09;二维DCTA&#xff1a;定义B&#xff1a;实例C&#xff1a;程序&#xff…

CTFHub | 双写后缀

0x00 前言 CTFHub 专注网络安全、信息安全、白帽子技术的在线学习&#xff0c;实训平台。提供优质的赛事及学习服务&#xff0c;拥有完善的题目环境及配套 writeup &#xff0c;降低 CTF 学习入门门槛&#xff0c;快速帮助选手成长&#xff0c;跟随主流比赛潮流。 0x01 题目描述…

使用Python、Contours绘制等高线

主要是通过python、opencv库的子模块Contour来分析灰度图&#xff0c;并绘制等高线 参考文档&#xff1a;https://docs.opencv.org/ 安装opencv pip install opencv-python 分析位图文件&#xff0c;将颜色分层&#xff0c;并绘制等高线 import cv2 as cv imgcv.imread(&qu…

软件安全测试有哪些测试手段?软件测试报告收费贵吗?

如今人们对于软件信息技术的依赖度越来越高&#xff0c;产品安全性也成为了用户选择该产品的第一考虑项。软件安全测试是软件测试中十分重要的测试活动&#xff0c;是一种验证软件系统安全等级和识别潜在安全性缺陷的过程。 一、软件安全测试的测试手段 1、静态的代码安全测试…

实时聊天如何改变您的在线商店

您的客户服务团队应该使用聊天功能吗&#xff1f;是的&#xff0c;绝对需要&#xff01;比如SaleSmartly&#xff08;ss客服&#xff09;的实时聊天&#xff0c;其功能可以改善您的客户服务互动并增加您的销售额。 53%的人更愿意与企业聊天&#xff0c;而不必打电话给他们回答客…

SOLIDWORKS三维建模的十大应用技巧

Solidworks是一套基于三维建模的机械CAD软件&#xff0c;它具有基于特征、单一数据库、参数化设计及全相关性等特性&#xff0c;广泛应用于机械、汽车和航空等领域。 PART1. 定制个性工具栏 SolidWorks具有的CommandManager&#xff0c;是一个上下文相关工具栏&#xff0c;它可…

SpringCloud-高级篇(一)

目录&#xff1a; &#xff08;1&#xff09;初识Sentinel-雪崩问题的解决方案 &#xff08;2&#xff09;服务保护Sentinel和Hystrix对比 &#xff08;3&#xff09;Sentinel初始-安转控制台 &#xff08;4&#xff09;整合微服务和Sentinel 微服务高级篇 &#xff08;1&…

2021蓝桥杯真题小平方 C语言/C++

问题描述 小蓝发现, 对于一个正整数 n 和一个小于 n 的正整数 v, 将 v 平方后对 n 取余可能小于 n 的一半, 也可能大于等于 n 的一半。 请问, 在 1 到 n−1 中, 有多少个数平方后除以 n 的余数小于 n 的一半。 例如, 当 n4 时, 1,2,3 的平方除以 4 的余数都小于 4 的一半。 …

【Java版oj】day28反转部分单向链表、猴子分桃

目录 一、反转部分单向链表 &#xff08;1&#xff09;原题再现 &#xff08;2&#xff09;问题分析 &#xff08;3&#xff09;完整代码 二、猴子分桃 &#xff08;1&#xff09;原题再现 &#xff08;2&#xff09;问题分析 &#xff08;3&#xff09;完整代码 一、反转…

【二叉树OJ题(二)】前序遍历中序遍历后序遍历另一颗树的子树二叉树遍历平衡二叉树

​ ​&#x1f4dd;个人主页&#xff1a;Sherry的成长之路 &#x1f3e0;学习社区&#xff1a;Sherry的成长之路&#xff08;个人社区&#xff09; &#x1f4d6;专栏链接&#xff1a;数据结构 &#x1f3af;长路漫漫浩浩&#xff0c;万事皆有期待 文章目录二叉树OJ练习(二)1、…

精彩回顾 | 平行云亮相LiveVideoStack2022北京站

3月31日&#xff0c;LiveVideoStack 2022 北京站隆重开幕&#xff0c;全球多媒体创新专家、音视频技术工程师、产品负责人、音视频用户等共襄盛会&#xff0c;聚焦音频、视频、图像、元宇宙、AI 等技术的最新探索。本届大会历时2天&#xff0c;12个技术专题&#xff0c;近百位行…

2023年一个完整的B2B订货网站源码

随着互联网技术的飞速发展&#xff0c;网上订货已经成为了许多企业不可或缺的一部分。一个完整的订货网站源码可以为企业提供方便、高效的订货交流平台&#xff0c;从而提高企业的效率和盈利能力。那么&#xff0c;2023年一个完整的订货网站源码需要多少钱呢&#xff1f;核货宝…

‘protoc-gen-js‘ 不是内部或外部命令,也不是可运行的程序

最近电脑重装了系统&#xff0c;但今天又需要将proto文件转化为js文件。 所以又走了一遍以下流程&#xff1a;proto文件生成js文件流程 但是打开链接后发现更新了很多版本&#xff0c;所以下载了最新的版本&#xff1a; 安装之后发现无法正常生成文件&#xff0c;并且报错&…
最新文章