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

简介: 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,后面也会不定期更新,敬请期待!



相关文章
|
存储 运维 监控
API明细日志及运维统计日志全面提升API可运维性
在数字化转型的大潮中,数据已成为企业最宝贵的资产之一。而数据服务API可快速为数据应用提供数据接口。面对越来越多的API以及越来越多的应用调用,如何快速查看API的服务情况、异常情况及影响范围,以及查看API的调用详情,进行API的性能优化、错误排查变得越来越重要,本文将介绍如何配置和开通API运维统计及明细日志,以及如何查看日志进行介绍。
604 0
|
3月前
|
JavaScript 索引
Vue.js中el-table组件实现数据行删除功能,包含行索引处理
注意:当从列表中移除项目时,默认情况下列表会重新渲染,并且每一项会获得新 的 索引值。如果你依赖于特定 索引值进行其他计算或者逻辑处理,请确保更新那些依赖于旧 索引值得逻辑代码段。
293 16
|
JavaScript
基于Vue2超简单实现DIY定制的步骤条
这篇文章介绍了如何在Vue 2中实现一个自定义设计的步骤条组件,包括子组件的设计和在父页面中的使用示例。
387 1
基于Vue2超简单实现DIY定制的步骤条
|
JavaScript
Vue组件点击事件不触发的问题,添加事件修饰符native解决
Vue组件点击事件不触发的问题,添加事件修饰符native解决
1219 0
|
XML JavaScript 前端开发
如何在JavaScript中设置多个样式属性?
【6月更文挑战第29天】如何在JavaScript中设置多个样式属性?
817 3
|
前端开发 算法 数据安全/隐私保护
Websocket 加密 数据加密 js-base64 + 异或
Websocket 加密 数据加密 js-base64 + 异或
481 0
|
前端开发 Java Spring
10个SpringMVC的核心组件详解
Spring MVC 核心组件包括 DispatcherServlet(前端控制器)、Controller(处理请求)、HandlerMapping(映射请求到方法)、HandlerAdapter(调用不同处理器)、ViewResolver(解析视图)、ModelAndView(传递数据到视图)、数据绑定、异常处理器、消息转换器和主题解析器。这些组件协同工作,支持基于 MVC 的 Web 应用开发,使请求处理、业务逻辑和视图渲染得以有序进行。了解并掌握这些组件有助于深入理解 Spring MVC 的工作原理。【5月更文挑战第2天】
719 4
|
数据可视化 JavaScript 定位技术
Cesium第1篇,CesiumJS第1篇,CesiumJS使用详细,在vue中使用Cesium.js(WebGIS中的Cesium地图可视化应用)
Cesium是一种基于WebGL开源的虚拟地球技术,可以用于构建高性能、跨平台的三维地球应用程序,它支持多种数据格式和地图服务,可以实现地球表面的高精度渲染、地形分析、数据可视化等功能。Cesium还提供了丰富的API和插件,方便开发者进行二次开发和定制化,且可免费商用,在航空航天、国防、城市规划、教育等领域得到了广泛应用。
1534 0
Cesium第1篇,CesiumJS第1篇,CesiumJS使用详细,在vue中使用Cesium.js(WebGIS中的Cesium地图可视化应用)
|
JavaScript 索引
JS数组常用方法总结,含ES6新方法,附示例代码
JS数组常用方法总结,含ES6新方法,附示例代码
|
图形学 Python
Python绘制动态树形:实现分形树动画
Python绘制动态树形:实现分形树动画
296 0