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

本文涉及的产品
全局流量管理 GTM,标准版 1个月
云解析 DNS,旗舰版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介: bug收集与整理

【前言】

在使用vue2构建页面时候,博主遇到的问题难点以及最终的解决方案。

⭐数据枚举文件的使用

同后端那边发送请求的时,请求返回过来的是数字等,有时我们实际页面上渲染的不是数字。这需要怎么处理呢?写一个枚举的映射文件就可以解决。我们发送完成请求并且拿到响应结果后将这个数据放进枚举文件中进行映射。

举个例子:

后端发送的是:xxxx:0,我需要将0对应的值转化成我们需要的。

前端的枚举文件假设为:

// 题型
export const questionType = [
  {
    value: 1,
    label: '单选'
  },
  {
    value: 2,
    label: '多选'
  },
  {
    value: 3,
    label: '简答'
  }

1.分析枚举文件将每一项拆分成数组的形式

const hireType = questionType.reduce((acc, item) => {
  acc[item.value] = item.label
  return acc
}, {})

2.将枚举文件与后端传递过来的值进行映射连接

// 格式化题型形式的数据
        formHireType (value) {
      return hireType[value] || '未知' // 方式2这样写只会执行一次优化了性能
    },

3.我们此刻在页面上进行渲染的时候将数字传递进去,调用这个方法就可以了

<template #default="{row}">
          {{ formHireType(row.questionType) }}//此处的row.questionType为一个数字
        </template>

此时,我们页面上如果接受的是1、2、3的时候都能找到映射出来的值。如果不属于1、2、3中的任意一个则页面上将会显示“未知”作为值渲染到页面上去。

整体流程为:分析接口、找到映射文件进行格式转换、渲染前调用格式转换方法即可

⭐elementUI中分页组件使用的注意事项

常用的属性:

@size-change="handleSizeChange"//每页条数变化的时候触发
      @current-change="handleCurrentChange"//当前页变化的时候触发
      :current-page="formData.page"//当前页码
      :page-size="formData.pagesize"//页面现实的数量
      :page-sizes="[2, 4, 6, 8,10]"//分页器
      :total="counts"//总数
      layout=" prev, pager, next,sizes, jumper"//显示的值

日常使用的时候,注意一下几点:

1.page-size的值应该与分页其中某一个值数量设置是相同的,否则当我们发page-size给服务器时,就会出现分页器上之后我们传递过去的page-size而不是某条/页。

2.每页条数切换完成之后需要重新将page也就是当前页数重置为1。

3.执行这两个回调函数中都需要重新调用一下我们页面渲染的列表确保数据能够得到及时的更新。

⭐v-html标签的作用

这个标签具有解析HTML标签的作用。常用于接收后台响应过来的数据进行一个解析。

举个例子当响应数据具有html标签,而我不使用v-html直接将数据渲染呈现如下:

<pre class="ql-syntax" spellcheck="false">cconst <span class="hljs-built_in">con</span> = '连接' </pre>

当我运用v-html进行解析后,页面渲染如下所示:

a6f3d27cb93b4859b7fbe850e4ef5cfe.png

完美将富文本格式进行了解析,将解析后的值渲染到了页面当中。

⭐elementUI下拉框必须v-model进行双向绑定

没有双向绑定,控制台会找不到我们下拉框的select这个标签的value是什么

b67e17f5190141eeacde4a1a098914e8.png

这也说到了一个双向绑定过程中:这个当我没写v-model我的值是从optiop的value中获取到的。没有写双向绑定这个值就传递不出去给其他需要用到这个值的地方使用。当我写下v-mol就是完美的将这个下拉选择框的值与data中的数据进行了一个绑定,故此其他地方也能够使用上我们这个值。

组件封装传值的思想

组件封装的流程很固定:①导入②注册③引用

具体使用封装方法可参考博主的博客:组件封装与传值

关注点在于为什么需要封装以及怎么传值这是我们需要关注的注意点。封装是解决我们代码复用的问题,我们可以在多个页面当中使用到这个组件。极大程度上避免了我们遇到了一个全新的页面就把代码从其他地方直接cv过来,虽然可以但是这样代码的体积就大了。那封装完成了我们就需要把重点放在传值上面去了。常用的父子传值就需要整起来的了,具体的使用方法请移步我的博客vue专栏即可,里面很详细的写了从零基础学习vue的绝大多数知识点。

父传子用:

:data="data"

父接收:

@子组件传递过来的事件名="父组件中全新的事件名称"

子接收:

props:{
data:{
type:"类型",//注意大写首字母如Number
required:'true/false'//用于判断是不是必须传
  }
}

子传递:

this.$emit('事件名',这里放传过去的数据(可省略))

以上便是近期bug收集与整理02,后面也会不定期更新,敬请期待!



相关文章
|
3月前
|
JavaScript 前端开发 API
花了一天的时间,地板式扫盲了vue3中所有API盲点
这篇文章全面介绍了Vue3中的API,包括组合式API、选项式API等内容,旨在帮助开发者深入了解并掌握Vue3的各项功能。
花了一天的时间,地板式扫盲了vue3中所有API盲点
|
4月前
|
JavaScript API UED
花了一天的时间,地板式扫盲了 Vue 3 所有 API 盲点
花了一天的时间,地板式扫盲了 Vue 3 所有 API 盲点
|
7月前
|
JavaScript 前端开发 关系型数据库
基于Vue的在线购物系统的设计与实现(论文+源码)_kaic
基于Vue的在线购物系统的设计与实现(论文+源码)_kaic
|
存储 缓存 JavaScript
|
JavaScript 编译器 API
Vue项目实战——实现GitHub搜索案例(学以致用,两小时带你巩固和强化Vue知识点)
Vue项目实战——实现GitHub搜索案例(学以致用,两小时带你巩固和强化Vue知识点)
165 0
|
存储 JavaScript 编译器
Vue项目实战——实现一个任务清单(学以致用,两小时带你巩固和强化Vue知识点)
Vue项目实战——实现一个任务清单(学以致用,两小时带你巩固和强化Vue知识点)
319 0
|
敏捷开发 存储 JavaScript
基于Vue框架的思源新闻发布平台设计与实现(论文+源码)_kaic
经过针对全校随机抽取的100名学生进行的研究发现,有约69%的学生,并不关心思源新闻,一些学生表示思源每天发生的大小事与他们无关。这项调查突显了需要提供一个能激发学生对思源校园新闻感兴趣的平台。因此本文为思源学院全院师生设计一个基于Vue框架的思源新闻发布平台,以解决校园新闻发布的不便利和信息化程度不高的问题。 本课题主要对基于Vue框架的思源新闻发布平台网站的设计与开发进行研究。论文首先描述了课题的研究背景、目的和意义,然后通过可行性分析和需求分析确定了系统开发方向。思源新闻发布平台主要采用了敏捷开发方法,通过不断迭代和反馈,不断完善系统功能和界面设计。在技术选型上,本系统采用了MySQL数
|
JSON 前端开发 JavaScript
搭建Vue3组件库:第十六章 品质保证:发布覆盖率测试报告
本章介绍如何发布你的组件代码覆盖率已经获取对应徽章。
657 0
搭建Vue3组件库:第十六章 品质保证:发布覆盖率测试报告
|
JavaScript 前端开发 测试技术
若川说"可能是历史上最简单的一期omit.js"源码共读,但我学到了这些
这里之前刚好学习过另外一个开源仓库 如何为前端项目一键自动添加eslint和prettier的支持 ,它这里是通过封装然后运行指令,直接将eslint和prettier的配置文件在项目中生成了。而@umijs/fabric这里是引用了封装的配置文件。
198 0
|
前端开发
前端知识案例2-依赖收集2-问题解决
前端知识案例2-依赖收集2-问题解决
61 0
前端知识案例2-依赖收集2-问题解决