当前位置: 首页 > news >正文

vue3字典数据的显示问题(使用hooks解决)

我们在使用 element-plus的时候,经常会使用一些字典数据, 在搜索框的时候,字典数数要使用 el-select el-option 来显示,当在table表格的时候,我们通常记录的是 字典数据的id , 又要把它改变成 字典数据的 name 属性
在这里插入图片描述
因为上面的位置有很多表都会使用的, 所以我们在 vue3 中最好是写一个公共的方法, 每个页面都可以随意使用, 这里, 我们就想到了使用 vue3中的 hooks

我们的字典的数据格式如下
在这里插入图片描述

hooks 文件的代码如下:

import { getDictData } from '../../src/api/app'   //这里是字典列表的请求接口
import {ref,onMounted} from 'vue'export default function(){const dictDataCanUse = ref([]);   //注意, 这里要定义成响应式的数据,其它页才可以用,//getDictDataFun 接收两个参数,也可能是一个参数, 如果是只接收一个参数, 说明是要获取字典列表,给 el-select el-option 等来使用的,如果是两个参数, 则说明是给 table-column中的显示数据名称来使用的const getDictDataFun = (str,value = "")=>{  //注意这个地方不能使用 async 和 await ,因为这个函数是要导出去给 模板使用的, 而如果加了 async ,则返回的是一个 promise 函数, 页面中用不了let label = ref("");     if(Object.keys(dictDataCanUse.value).length == 0 || dictDataCanUse.value[str] == undefined){  第一次请求的时候 是没有值的dictDataCanUse.value[str] = [];  这里我们先的把数据赋成空数组,  不然后面的dictDataCanUse.value[str].find 这句会报错let res =  getDictData({  type: str}).then(res=>{dictDataCanUse.value = res;  //这里我们请求并更改了 dictDataCanUse})}if(value){ //如果有value ,我们得到label来返回数据let labelitem = dictDataCanUse.value[str].find(item=>{return item.id == value})label.value = labelitem.name?labelitem.name:"";}// 如果 value 不为空,则返回 label ,如果为空, 则返回字典数据return value ? label : dictDataCanUse.value[str];}return {getDictDataFun}  //把这个方法 export 出去
}

上面就是一个 hooks 的方法了

引入到要使用的页面去使用

import useDictDataCanUse from '@/hooks/useDictDataCanUse'
const { getDictDataFun } = useDictDataCanUse()//------------在template中的使用如果是 el-select 中使用<el-form-item prop="source_from"><el-select class="w-[200px]" style="width:200px" v-model="queryParams.source_from" clearable placeholder="客户来源"><el-option label="全部" value=""></el-option><el-option v-for="(item,index) in getDictDataFun('source_from')" :key="index" :label="item.name" :value="parseInt(item.value)"></el-option></el-select></el-form-item>如果是table-column中使用<el-table-column label="渠道来源" prop="source_from"><template v-slot:default ="{ row }"><el-tag effect="plain">{{ getDictDataFun('source_from',row.source_from) }}</el-tag></template></el-table-column>
//-------------

以上就是用一个 hooks 解决了, 表格,查询框中的字典显示问题了,注意 hooks中返回的数据一定是 响应式数据 ref reactive 定义的, 因为这样, 页面标签才会监测到数据的变化,作出响应变化, (最主要的原因, 还是因为数据的请求是异步的,有可能页面显示的时候还没有得到数据, 但是响应式的数据,就不会被异步来防碍了,大至是这个意思,细品一下)

相关文章:

vue3字典数据的显示问题(使用hooks解决)

我们在使用 element-plus的时候&#xff0c;经常会使用一些字典数据&#xff0c; 在搜索框的时候&#xff0c;字典数数要使用 el-select el-option 来显示&#xff0c;当在table表格的时候&#xff0c;我们通常记录的是 字典数据的id , 又要把它改变成 字典数据的 name 属性 因…...

Elasticsearch 单节点安全配置与用户认证

Elasticsearch 单节点安全配置与用户认证 安全扫描时发现了一个高危漏洞&#xff1a;Elasticsearch 未授权访问 。在使用 Elasticsearch 构建搜索引擎或处理大规模数据时&#xff0c;需要启用基本的安全功能来防止未经授权的访问。本文将通过简单的配置步骤&#xff0c;为单节…...

二分查找(带图详解)

优选算法系列 文章目录 优选算法系列前言一、二分查找的思想二、算法使用小总结 三、代码实现四、二分查找拓展4.1、查找第一次出现的target小总结 4.2、target最后出现的位置小总结 五、代码总结 前言 在这篇博客中&#xff0c;我会给大家分享二分查找及其扩展。 这是链接-&…...

【Git】:标签管理

目录 理解标签 创建标签 操作标签 理解标签 标签的作用 标记版本&#xff1a;标签 tag &#xff0c;可以简单的理解为是对某次 commit 的⼀个标识&#xff0c;相当于起了⼀个别名。例如&#xff0c;在项目发布某个版本的时候&#xff0c;针对最后⼀次 commit 起⼀个 v1.0 这样…...

物品识别 树莓派 5 YOLO v5 v8 v10 11 计算机视觉

0. 要实现的效果 让树莓派可以识别身边的一些物品&#xff0c;比如电脑&#xff0c;鼠标&#xff0c;键盘&#xff0c;杯子&#xff0c;行李箱&#xff0c;双肩包&#xff0c;床&#xff0c;椅子等 1. 硬件设备 树莓派 5 raspberrypi.com/products/raspberry-pi-5/树莓派官方摄…...

单片机软件工程师前景分析

单片机软件工程师的前景在2024年看起来是积极的。随着物联网&#xff08;IoT&#xff09;、自动化、智能设备等领域的快速发展&#xff0c;对于能够开发基于单片机&#xff08;MCU&#xff09;如STM32、ARM、51等嵌入式系统的软件工程师需求持续增长。这些工程师负责设计和实现…...

在Java中几种常用数据压缩算法的实现及其优劣势

在Java中几种常用数据压缩算法的实现及其优劣势 背景&#xff1a;项目需要引入Redis作为缓存组件&#xff0c;需要考虑到Redis的内存占用&#xff08;机器内存越大&#xff0c;成本越高&#xff09;&#xff0c;因此需要引入数据压缩。 1、介绍 数据压缩是计算机领域中一项重要…...

Word——如何打出 符号中的 1、2、3等带圆圈的序号

一、方式1 1.1&#xff1a;点击 插入-符号 1.2&#xff1a;字体 选择 Wingdings 或者 Wingdings 2 二、方式2 带1的圈&#xff1a;输入 2460&#xff0c;然后按 AItX 带2的圈&#xff1a;输入 2461&#xff0c;然后按 AItX 带3的圈&#xff1a;输入 2462&#xff0c;然后按 …...

操作系统之进程与线程

进程 定义&#xff1a; 进程是具有独立功能的程序关于某个数据集合上的一次运行活动&#xff0c;是系统进行资源分配和调度的独立单位。 组成&#xff1a; 包括程序代码、程序处理的数据、程序计数器、一组寄存器的值以及系统资源&#xff08;如打开的文件&#xff09;等。 …...

代码随想录算法训练营打卡第35天:背包问题

前言 zaccheo打卡代码随想录第35天 由于这段时间工作太忙了&#xff08;加上我的懒病犯了&#xff09;导致迟打卡了好几天555555.。。。 今天的主要是动态规划中的背包问题&#xff0c;这个真的是蛮难理解的&#xff0c;我把我自己强行按在椅子上半个小时一点一点的看卡哥文章…...

【MySQL】数据库 Navicat 可视化工具与 MySQL 命令行基本操作

&#x1f4af; 欢迎光临清流君的博客小天地&#xff0c;这里是我分享技术与心得的温馨角落 &#x1f4af; &#x1f525; 个人主页:【清流君】&#x1f525; &#x1f4da; 系列专栏: 运动控制 | 决策规划 | 机器人数值优化 &#x1f4da; &#x1f31f;始终保持好奇心&…...

vscode(一)安装(ubuntu20.04)

1、更新软件包列表 sudo apt update2、安装依赖包 sudo apt install software-properties-common apt-transport-https wget3、导入Microsoft GPG密钥 wget -q https://packages.microsoft.com/keys/microsoft.asc -O- | sudo apt-key add -4、向系统添加VSCode存储库 sudo…...

利用永恒之蓝对win7进行键盘记录

打开kali中的msfconsole 找到永恒之蓝&#xff0c;设置靶机ip&#xff0c;后可以exploit&#xff0c;也可以run 连接成功 查看进程&#xff0c;选择监听靶机win7上的cmd.exe进程 当前进程不是1484&#xff0c;需要迁移到1484 cmd.exe&#xff0c;进程迁移 键盘监听&#xff0c;…...

万字长文解读深度学习——dVAE(DALL·E的核心部件)

&#x1f33a;历史文章列表&#x1f33a; 深度学习——优化算法、激活函数、归一化、正则化 深度学习——权重初始化、评估指标、梯度消失和梯度爆炸 深度学习——前向传播与反向传播、神经网络&#xff08;前馈神经网络与反馈神经网络&#xff09;、常见算法概要汇总 万字长…...

RL仿真库pybullet

1. 介绍 PyBullet是一个基于Bullet Physics引擎的物理仿真Python接口&#xff0c;主要用于机器人仿真模拟。 1.1 主要特点 提供大量预设的机器人模型&#xff0c;例如URDF(统一机器人描述格式)、SDF、MJCF 格式。适用于训练和评估强化学习算法&#xff0c;提供了大量的强化学…...

file_get_contents函数导致网站卡死响应超时

宝塔控制面板系统下运行包含file_get_contents函数的php文件时候&#xff0c;发生以下报错&#xff1a; PHP Warning: file_get_contents():php_network_getaddresses: getaddrinfo failed: 解决方法&#xff1a; 一&#xff1a;需要检查请求的远程主机是否在本机的/etc/host…...

如何使用C#与SQL Server数据库进行交互

一.创建数据库 用VS 创建数据库的步骤&#xff1a; 1.打开vs&#xff0c;创建一个新项目&#xff0c;分别在搜素框中选择C#、Windows、桌面&#xff0c;然后选择Windows窗体应用(.NET Framework) 2.打开“视图-服务器资源管理器”&#xff0c;右键单击“数据连接”&#xff0…...

#渗透测试#红蓝对抗#SRC漏洞挖掘# Yakit(5)进阶模式-MITM中间人代理与劫持(上)

免责声明 本教程仅为合法的教学目的而准备&#xff0c;严禁用于任何形式的违法犯罪活动及其他商业行为&#xff0c;在使用本教程前&#xff0c;您应确保该行为符合当地的法律法规&#xff0c;继续阅读即表示您需自行承担所有操作的后果&#xff0c;如有异议&#xff0c;请立即停…...

vue3 项目搭建-9-通过 router 在跳转页面时传参

第一步&#xff0c;在跳转链接处挂载方法&#xff0c;将要传输的数据传入&#xff1a; <a href"#" click.prevent"goToArticle(obj.id)" class"click"><h1>{{obj.title}}</h1><p>作者&#xff1a;{{obj.author}}</p&…...

Java、python标识符命名规范

Java 包名所有字母一律小写。例如cn.com.test类名和接口名每个单词的首字母都要大写。例如ArrayList、Iterator常量名所有字母都大写&#xff0c;单词之间用下划线连接&#xff0c;例如&#xff1a;DAY_OF_MONTH变量名和方法名的第一个单词首字母小写&#xff0c;从第二个单词…...

LTC3305铅酸电池平衡器与PTC限流方案设计

1. LTC3305铅酸电池平衡器工作原理 LTC3305是Linear Technology&#xff08;现属ADI&#xff09;推出的一款专用于铅酸电池组的主动平衡控制器。其核心功能是通过一个辅助电池&#xff08;AUX&#xff09;在串联电池组间进行电荷转移&#xff0c;实现电压均衡。这种架构特别适合…...

如何快速掌握终极鼠标悬停翻译神器:MouseTooltipTranslator完整使用指南

如何快速掌握终极鼠标悬停翻译神器&#xff1a;MouseTooltipTranslator完整使用指南 【免费下载链接】MouseTooltipTranslator Mouseover Translate Any Language At Once - Chrome Extension: PDF Translator, EBOOK, EPUB, OCR, TTS, NETFLIX, YOUTUBE DUAL SUBTITLES, GOOGL…...

AntiDupl.NET终极指南:快速清理重复图片的免费开源神器

AntiDupl.NET终极指南&#xff1a;快速清理重复图片的免费开源神器 【免费下载链接】AntiDupl A program to search similar and defect pictures on the disk 项目地址: https://gitcode.com/gh_mirrors/an/AntiDupl 你是否曾为电脑中堆积如山的重复图片而烦恼&#xf…...

ROFL-Player:基于C的多版本英雄联盟回放文件解析技术实现

ROFL-Player&#xff1a;基于C#的多版本英雄联盟回放文件解析技术实现 【免费下载链接】ROFL-Player (No longer supported) One stop shop utility for viewing League of Legends replays! 项目地址: https://gitcode.com/gh_mirrors/ro/ROFL-Player ROFL-Player是一款…...

如何在macOS上运行Windows应用:Whisky完整使用指南

如何在macOS上运行Windows应用&#xff1a;Whisky完整使用指南 【免费下载链接】Whisky A modern Wine wrapper for macOS built with SwiftUI 项目地址: https://gitcode.com/gh_mirrors/wh/Whisky 想要在Mac上运行Windows专属软件和游戏&#xff1f;厌倦了虚拟机的高资…...

如何5分钟实现Windows系统自动化软件部署:winget-install完整指南

如何5分钟实现Windows系统自动化软件部署&#xff1a;winget-install完整指南 【免费下载链接】winget-install Install WinGet using PowerShell! Prerequisites automatically installed. Works on Windows 10/11 and Server 2019/2022. 项目地址: https://gitcode.com/gh_…...

番茄小说下载器:如何用开源工具构建个人数字图书馆?

番茄小说下载器&#xff1a;如何用开源工具构建个人数字图书馆&#xff1f; 【免费下载链接】Tomato-Novel-Downloader 番茄小说下载器不精简版 项目地址: https://gitcode.com/gh_mirrors/to/Tomato-Novel-Downloader 你是否曾经遇到过这样的情况&#xff1a;在手机上追…...

告别DLL地狱:VisualCppRedist AIO一站式解决Windows运行库依赖难题

告别DLL地狱&#xff1a;VisualCppRedist AIO一站式解决Windows运行库依赖难题 【免费下载链接】vcredist AIO Repack for latest Microsoft Visual C Redistributable Runtimes 项目地址: https://gitcode.com/gh_mirrors/vc/vcredist 你是否曾因"缺少msvcp140.dl…...

保姆级教程:在i.MX6ULL开发板上用LVGL v8.3.11跑个炫酷UI(附触屏配置)

嵌入式Linux系统LVGL图形库移植实战指南&#xff1a;从零构建炫酷UI界面 在嵌入式系统开发中&#xff0c;图形用户界面(GUI)的实现一直是开发者面临的挑战之一。传统解决方案要么过于笨重&#xff0c;要么功能简陋&#xff0c;直到LVGL的出现改变了这一局面。这款轻量级开源图形…...

魔兽争霸3终极增强插件:8大功能全面提升游戏体验完整指南

魔兽争霸3终极增强插件&#xff1a;8大功能全面提升游戏体验完整指南 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper 还在为魔兽争霸3在现代系统上的兼…...