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

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

 更新時(shí)間:2022年09月14日 08:51:25   作者:樓招顏  
這篇文章主要介紹了vue3聲明字段名為枚舉的類型方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(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)用

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

// 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>枚舉測試</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ì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-09-09
  • 在vue路由上添加公共的路由前綴方式

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

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

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

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

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

    這篇文章主要介紹了vue如何動態(tài)修改meta的title,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(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)知識點(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傳參頁面刷新數(shù)據(jù)丟失問題解析

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

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

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

    這篇文章主要為大家詳細(xì)介紹了vue實(shí)現(xiàn)整屏滾動切換,文中示例代碼介紹的非常詳細(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à)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-09-09

最新評論

沙河市| 鹿泉市| 屏边| 威信县| 拜泉县| 资兴市| 浦县| 宁南县| 雷波县| 天峨县| 封丘县| 合肥市| 万荣县| 屏东市| 赤水市| 惠安县| 大港区| 奎屯市| 永登县| 贵定县| 东海县| 中阳县| 黄龙县| 许昌市| 安国市| 德昌县| 牙克石市| 区。| 南康市| 康乐县| 海林市| 乡城县| 霸州市| 荔浦县| 灵丘县| 罗田县| 琼结县| 商河县| 巫山县| 澎湖县| 成安县|