最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

vue3聲明字段名為枚舉的類型詳解

 更新時(shí)間:2022年09月14日 08:51:25   作者:樓招顏  
這篇文章主要介紹了vue3聲明字段名為枚舉的類型方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

vue3聲明字段名為枚舉類型

下面是Type的枚舉聲明,共有6個(gè)字段

enum Type {
? primary = "primary",
? success = "success",
? warning = "warning",
? warn = "warn", // warning alias
? danger = "danger",
? info = "info",
}

TypeScript 中聲明類型的關(guān)鍵字有兩個(gè),interface 和 type,在聲明 key 不確定類型的字段時(shí)稍有不同。

使用 type 進(jìn)行聲明:

type ColorConfig = {
? [key in Type]: Colors;
};

使用 interface 卻只能像下面這樣:

interface ColorConfig {
? [key: string]: Colors;
}

因?yàn)?interface 的索引只能是基礎(chǔ)類型,類型別名也不可以。而 type 的索引可以是復(fù)合類型。

vue使用提升之"枚舉"應(yīng)用

方式一(適用于簡(jiǎn)易過濾器中)

// enum.js**文件
/**
?* 獲取枚舉值:STATUSMAP.TTT
?* 獲取枚舉描述:STATUSMAP.getDesc('SH')
?* 通過枚舉值獲取描述:STATUSMAP.getDescFromValue('TG')
?*/
let STATUSMAP = createEnum({
? SH: ['SH', '審核中'],
? TG: ['TG', '審核通過']
});
function createEnum(definition) {
? const valueMap = {};
? const descMap = {};
? for (const key of Object.keys(definition)) {
? ? const [value, desc] = definition[key];
? ? valueMap[key] = value;
? ? descMap[value] = desc;
? }
? return {
? ? ...valueMap,
? ? getDesc(key) {
? ? ? return (definition[key] && definition[key][1]) || '無';
? ? },
? ? getDescFromValue(value) {
? ? ? return descMap[value] || '無';
? ? }
? }
}
export default STATUSMAP;

view文件

<el-row>
? ?<el-button>枚舉測(cè)試</el-button>
? ?<p>當(dāng)前狀態(tài):{{STATUS.getDescFromValue('SH')}}</p>
? ?<p>也可用通過枚舉名稱獲取描述:{{STATUS.getDesc('HHH')}}</p>
?</el-row>
?<!-- 過濾器中使用 則在filters過濾器中直接使用函數(shù)返回值 -->

方拾二(過濾器,循環(huán)列表)

// order.js文件
/**
?* 定義枚舉值?
?*/
export default {
? order: [
? ? { value: 'TJ', label: '已提交' },
? ? { value: 'CZ', label: '處理中' },
? ? { value: 'CL', label: '已處理' },
? ],
? orderDetail: [
? ? { value: 'DF', label: '待發(fā)貨' },
? ? { value: 'FH', label: '已發(fā)貨' },
? ? { value: 'QS', label: '已簽收' },
? ]
}
// constants.js文件
/**
* 定義枚舉工具
* ?
*/
import order from './order/index.js';
let constants = {
? ...order
};
let valueMap = {};
let nameMap = {};
Object.keys(constants).forEach(key => {
? valueMap[key] = [];
? nameMap[key] = {};
? constants[key].forEach(event => {
? ? valueMap[key].push(event);
? ? nameMap[key][event.value] = event.label;
? });
});
export {
? valueMap,
? nameMap
}
/**
* view文件
*/
<template>
?? ?<h3>枚舉值用于展示</h3>
?? ?<el-row>
?? ??? ?<el-button v-for="(item, index) in valueMap.order" :key="index">{{item.label}}</el-button>
?? ?</el-row>
?? ?<h3>枚舉值過濾器</h3>
?? ?<el-row>
?? ??? ?<el-button>{{enumValue | filterStatus('orderDetail')}}</el-button>
?? ?</el-row>
</template>
<script>
?? ?import { valueMap, nameMap } from '@/constants';
?? ?export default {
?? ? ?data() {
?? ? ? ?return {
?? ? ? ? ?STATUS: STATUS,
?? ? ? ? ?valueMap,
?? ? ? ? ?enumValue: 'FH', // 發(fā)貨
?? ? ? ?}
?? ? ?},
?? ? ?filters:{
?? ? ? ?filterStatus: function(val, key){
?? ? ? ? ?if(!val && val !== 0){
?? ? ? ? ? ?return '無';
?? ? ? ? ?}
?? ? ? ? ?return nameMap[key][val];?
?? ? ? ?}
?? ? ?}
?? ?}

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。 

相關(guān)文章

  • 詳解Vue3的七種組件通信方式

    詳解Vue3的七種組件通信方式

    本篇文章將詳解介紹Vue3中如下七種組件通信方式:props、emit、v-model、refs、provide/inject、eventBus、vuex/pinia(狀態(tài)管理工具)。感興趣的可以了解一下
    2022-02-02
  • vue3??mark.js?實(shí)現(xiàn)文字標(biāo)注功能(案例代碼)

    vue3??mark.js?實(shí)現(xiàn)文字標(biāo)注功能(案例代碼)

    這篇文章主要介紹了vue3??mark.js?實(shí)現(xiàn)文字標(biāo)注功能,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-09-09
  • 在vue路由上添加公共的路由前綴方式

    在vue路由上添加公共的路由前綴方式

    這篇文章主要介紹了在vue路由上添加公共的路由前綴方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • vue?實(shí)現(xiàn)列表跳轉(zhuǎn)至詳情且能添加至購(gòu)物車功能

    vue?實(shí)現(xiàn)列表跳轉(zhuǎn)至詳情且能添加至購(gòu)物車功能

    列表頁(yè)面顯示數(shù)據(jù),點(diǎn)擊跳轉(zhuǎn)到對(duì)應(yīng)的詳情頁(yè),詳情頁(yè)可以添加并跳轉(zhuǎn)到購(gòu)物車,購(gòu)物車具有常見功能,這篇文章主要介紹了vue?實(shí)現(xiàn)列表跳轉(zhuǎn)至詳情且能添加至購(gòu)物車,需要的朋友可以參考下
    2022-10-10
  • vue如何動(dòng)態(tài)修改meta的title

    vue如何動(dòng)態(tài)修改meta的title

    這篇文章主要介紹了vue如何動(dòng)態(tài)修改meta的title,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • Vue如何實(shí)現(xiàn)響應(yīng)式系統(tǒng)

    Vue如何實(shí)現(xiàn)響應(yīng)式系統(tǒng)

    這篇文章給大家整理了關(guān)于Vue如何實(shí)現(xiàn)響應(yīng)式系統(tǒng)的相關(guān)知識(shí)點(diǎn)內(nèi)容,有興趣的朋友可以參考學(xué)習(xí)下。
    2018-07-07
  • v-for循環(huán)中使用require/import關(guān)鍵字引入本地圖片的幾種方式

    v-for循環(huán)中使用require/import關(guān)鍵字引入本地圖片的幾種方式

    在做項(xiàng)目的過程中,模版相同,可是不標(biāo)題和圖片不同,循環(huán)標(biāo)題我們知道可以用v-for循環(huán),可是該怎么引入本地圖片呢?下面這篇文章主要給大家介紹了v-for循環(huán)中使用require/import關(guān)鍵字引入本地圖片的幾種方式,需要的朋友可以參考下
    2021-09-09
  • vue路由傳參之使用query傳參頁(yè)面刷新數(shù)據(jù)丟失問題解析

    vue路由傳參之使用query傳參頁(yè)面刷新數(shù)據(jù)丟失問題解析

    這篇文章主要介紹了vue路由傳參使用query傳參頁(yè)面刷新數(shù)據(jù)丟失問題,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-04-04
  • vue實(shí)現(xiàn)整屏滾動(dòng)切換

    vue實(shí)現(xiàn)整屏滾動(dòng)切換

    這篇文章主要為大家詳細(xì)介紹了vue實(shí)現(xiàn)整屏滾動(dòng)切換,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-06-06
  • 如何解決Element-ui的el-table固定列后出現(xiàn)的表格錯(cuò)位問題

    如何解決Element-ui的el-table固定列后出現(xiàn)的表格錯(cuò)位問題

    這篇文章主要介紹了如何解決Element-ui的el-table固定列后出現(xiàn)的表格錯(cuò)位問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-09-09

最新評(píng)論

赤城县| 灯塔市| 玛纳斯县| 攀枝花市| 什邡市| 云和县| 花莲县| 林口县| 乾安县| 城步| 云林县| 沁水县| 潜山县| 广丰县| 永州市| 河间市| 独山县| 肇源县| 南平市| 沙湾县| 沁阳市| 遂宁市| 翁牛特旗| 南投市| 玛曲县| 神农架林区| 瑞昌市| 分宜县| 桃江县| 土默特左旗| 修文县| 陕西省| 额济纳旗| 平昌县| 阿瓦提县| 福安市| 吉林市| 贵南县| 海城市| 岚皋县| 砀山县|