iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >Vue后台中如何优雅的书写状态标签
  • 927
分享到

Vue后台中如何优雅的书写状态标签

2023-06-20 19:06:08 927人浏览 安东尼
摘要

这篇文章主要介绍Vue后台中如何优雅的书写状态标签,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!前言在后台系统开发中,对于列表,常常有一些状态字段的展示,比如审核状态、退货申请状态等等,并且往往伴随有状态筛选的列表查

这篇文章主要介绍Vue后台中如何优雅的书写状态标签,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

    前言

    在后台系统开发中,对于列表,常常有一些状态字段的展示,比如审核状态、退货申请状态等等,并且往往伴随有状态筛选的列表查询条件,同时状态显示对应不同颜色,在写代码时有些人往往是这么做的:

    <template>  <el-fORM :model="query">    <el-form-item label="审批状态" prop="status">      <el-select v-model="query.status" clearable>        <el-option          v-for="item in statusOptions"          :key="item.value"          :label="item.label"          :value="item.value"        />      </el-select>    </el-form-item>    <el-form-item>      <el-button type="primary">查询</el-button>      <el-button type="danger">重置</el-button>    </el-form-item>  </el-form>  <el-table :data="list">    <el-table-column label="审批状态">      <template #default="{ row }">        <el-tag v-if="row.status === 0" type="primary">审核中</el-tag>        <el-tag v-if="row.status === 1" type="success">审核成功</el-tag>        <el-tag v-if="row.status === 2" type="danger">审核失败</el-tag>      </template>    </el-table-column>  </el-table></template>
    export default {  data() {    return {      query: {          status: null      },      statusOptions: [          { label: '审核中', value: 0 },          { label: '审核成功', value: 1 },          { label: '审核失败', value: 2 }      ],      list: []    }  }}

    以上代码虽然是实现了需求,但却显得不够优雅,代码维护成本较高:

    • 标签里充斥着较多的 v-if 且与 data 里的数据重复,造成冗余。

    • 当有新增或修改时,需要改动多个地方,例如要改动文案时下拉框和表格里的都要改。

    • 如果是多个页面都有该状态需要显示,复制粘贴,最后当需求变动时势必会增加改动成本。

    优化

    针对上面的问题,咱们通过以下措施来进行抢救。

    抽离变量

    建立常量文件存放 statusOptions,增加 el-tag 组件的 type 字段来区分显示不同的颜色,最后将其导出。

    // const/index.js// 审核状态const statusOptions = [  { label: '审核中', value: 0, type: 'primary' },  { label: '审核成功', value: 1, type: 'success' },  { label: '审核失败', value: 2, type: 'danger' }]export {  statusOptions}

    二次封装 el-tag 组件

    // components/stats-tag.vue<template>  <el-tag :type="getValue('type')">    {{ getValue('label') }}  </el-tag></template>
    export default {  name: 'StatusTag',    props: {    options: {      type: Array,      required: true,      default: () => []    },    status: {      type: [String, Number],      required: true    }  },    computed: {    getValue({ options, status }) {      return (key) => {        const item = options.find(e => e.value === status)        return (item && item[key]) || ''      }    }  }}

    使用

    <template>  <el-form :model="query">    <el-form-item label="审批状态" prop="status">      <el-select v-model="query.status" clearable>        <el-option          v-for="item in statusOptions"          :key="item.value"          :label="item.label"          :value="item.value"        />      </el-select>    </el-form-item>    <el-form-item>      <el-button type="primary">查询</el-button>      <el-button type="danger">重置</el-button>    </el-form-item>  </el-form>  <el-table :data="list">    <el-table-column label="审批状态">      <template #default="{ row }">        <!-- 使用 -->        <status-tag           :options="statusOptions"          :status="row.status"        />      </template>    </el-table-column>  </el-table></template>
    import StatusTag from '@/components/status-tag'// 导入import { statusOptions } from '@/const'export default {  components: {    StatusTag  },    data() {    return {      statusOptions    }  }}

    经过优化后,如果有修改变动,只需要改动 const/index.js 文件即可,无需到处修。

    // const/index.js// 审核状态const statusOptions = [  { label: '审核中', value: 0, type: 'primary' },  { label: '审核成功', value: 1, type: 'success' },  { label: '审核失败', value: 2, type: 'danger' },  // 增加取消状态  { label: '审核取消', value: 3, type: 'warning' }]export {  statusOptions}

    以上是“Vue后台中如何优雅的书写状态标签”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注编程网精选频道!

    --结束END--

    本文标题: Vue后台中如何优雅的书写状态标签

    本文链接: https://www.lsjlt.com/news/299409.html(转载时请注明来源链接)

    有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

    本篇文章演示代码以及资料文档资料下载

    下载Word文档到电脑,方便收藏和打印~

    下载Word文档
    猜你喜欢
    • Vue后台中如何优雅的书写状态标签
      这篇文章主要介绍Vue后台中如何优雅的书写状态标签,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!前言在后台系统开发中,对于列表,常常有一些状态字段的展示,比如审核状态、退货申请状态等等,并且往往伴随有状态筛选的列表查...
      99+
      2023-06-20
    • Vue后台中优雅书写状态标签的方法实例
      目录前言优化抽离变量二次封装 el-tag 组件使用总结前言 在后台系统开发中,对于列表,常常有一些状态字段的展示,比如审核状态、退货申请状态等等,并且往往伴随有状态筛选的列表查询...
      99+
      2024-04-02
    • 如何用react优雅的书写CSS
      目录1.内联样式 2.使用import导入方式 3.css module模块导出 4.使用styled-components 4.1初步使用4.2通过attrs设置属性4.3css继...
      99+
      2024-04-02
    • vue3+ts实际开发中该如何优雅书写vue3语法
      目录vue3语法的发展优势Composition Api类型约束编译器宏definePropsdefineEmitsdefineExpose总结vue3语法的发展 Vue3 在早期版...
      99+
      2022-11-13
      vue3 ts 教程 vue3 写法 vue方法怎么写
    • vue中如何给标签赋有标签的值
      Vue是一款流行的JavaScript框架,可以方便地构建交互式的用户界面。在Vue中,给标签赋值是一项基本的操作。本文将介绍如何在Vue中给标签赋值。在Vue中,给标签赋值的方法有很多种。下面介绍其中几种比较常见的方法:使用v-bind指...
      99+
      2023-05-14
    • vue如何动态修改a标签的样式
      今天小编给大家分享一下vue如何动态修改a标签的样式的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。代码如下:<!DOC...
      99+
      2023-07-04
    • HTML 标签嵌套的挑战:如何优雅地处理复杂结构
      HTML 标签嵌套是构建复杂网页结构时不可避免的手段,但过多的嵌套会对可读性和可维护性造成负面影响。为了优雅地处理复杂结构,需要采取一些有效的解决方案。 首先,尽量减少不必要的嵌套。在设计网页结构时,应遵循简洁的原则,避免使用过多的嵌套...
      99+
      2024-02-03
      HTML 标签嵌套 复杂结构 优雅处理 可读性 可维护性
    • vue如何实现动态的选中状态切换效果
      目录动态选中状态切换效果vue状态转换状态展示动态选中状态切换效果  HTML中的内容为以下。 <ul class="list">      <li v-...
      99+
      2024-04-02
    • vue elementUi中的tabs标签页如何使用
      本文小编为大家详细介绍“vue elementUi中的tabs标签页如何使用”,内容详细,步骤清晰,细节处理妥当,希望这篇“vue elementUi中的tabs标签页如何使用”文章能帮助大家解决疑惑,下面跟着小编的思路...
      99+
      2023-07-05
    • Html5新标签datalist如何实现输入框与后台数据库数据的动态匹配
      这篇文章主要介绍Html5新标签datalist如何实现输入框与后台数据库数据的动态匹配,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!最近项目中涉及到一个小功能,客户在选择供应商时,...
      99+
      2024-04-02
    • Vue中如何优雅的捕获Promise异常详解
      目录常规的异常捕获方式好一些的方式:await-to-js更好的方式:全局捕获常规的异常捕获方式 在 Promise 提供了一个 .catch 方法用来捕获异常,假设有很多异步请求,...
      99+
      2022-11-13
      Vue Promise 异常捕获 Vue Promise
    • vue组件中如何实现点击按钮后修改输入框的状态
      这篇文章将为大家详细讲解有关vue组件中如何实现点击按钮后修改输入框的状态,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。最近写一个这样的页面  要求点击修改按钮...
      99+
      2024-04-02
    • VUE中如何优雅实现爷孙组件的数据通信
      目录$attrs和$listeners如何使用呢?$attrs的使用:$listeners的使用:总结:在开发的过程中遇到这么个场景,我需要在爷组件中请求数据,请求到的数据呢需要在孙...
      99+
      2024-04-02
    • 如何在vue中更优雅的封装第三方组件详解
      目录一、需求场景描述二、关键技术点介绍1.v-bind="$attrs"2.v-on="$listeners"三、封装el-image的代码示...
      99+
      2024-04-02
    • 如何解决杜松子酒中的“标头已写入。想要用 400 覆盖状态代码 200”
      php小编子墨为您介绍解决杜松子酒中的“标头已写入。想要用 400 覆盖状态代码 200”问题的方法。这个问题通常发生在使用PHP进行网页开发时,可能会导致网页无法正常加载。解决方法包...
      99+
      2024-02-10
    • 如何解决vue中axios封装请求状态的错误提示问题
      这篇文章主要介绍了如何解决vue中axios封装请求状态的错误提示问题,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。如下所示: import...
      99+
      2024-04-02
    • 详解如何使用Vuex实现Vue后台管理中的角色鉴权
      目录前言功能分析实现思路代码实现vuex中定义user模块,存储用户信息以及用户侧边导航数据router中路由meta中新增roles 定义当前路由可以访问的所有的角色ro...
      99+
      2024-04-02
    • 如何解决vue-cli 默认路由再子路由选中下的选中状态问题
      小编给大家分享一下如何解决vue-cli 默认路由再子路由选中下的选中状态问题,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!vue-cli是Vue.js官方脚手架命令行工具,我们可以用它快...
      99+
      2024-04-02
    • 如何使用element-ui的el-menu导航选中后刷新页面保持当前选中状态
      这篇文章给大家分享的是有关如何使用element-ui的el-menu导航选中后刷新页面保持当前选中状态的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。具体代码如下所示:<e...
      99+
      2024-04-02
    • PHP如何计算指定字符串在目标字符串中最后一次出现的位置(不区分大小写)
      这篇文章将为大家详细讲解有关PHP如何计算指定字符串在目标字符串中最后一次出现的位置(不区分大小写),小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。PHP 中不区分大小写的字符串最后一次出现位置 引言 在 ...
      99+
      2024-04-02
    软考高级职称资格查询
    编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
    • 官方手机版

    • 微信公众号

    • 商务合作