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

【玩玩Vue】通过vue-store实现枚举管理,用于下拉选项和中英文翻译等

原文作者:我辈李想
版权声明:文章原创,转载时请务必加上原文超链接、作者信息和本声明。


文章目录

  • 一、store基础用法
    • 1.在src下新建store文件夹,在store下新建module文件夹
    • 2.在module下新建enums.js文件
    • 3.在store下新建getters.js文件
    • 4.在store下新建index.js文件
    • 5.修改src下main.js文件
    • 6.vue文件调用
  • 二、中英文翻译
    • 1.在src下建立中英文翻译的文件夹language,继续新建en.js、zh.js、index.js文件
    • 2.en.js和zh.js内容
    • 3.index.js内容
    • 4.修改src下main.js文件
    • 5.修改enums.js文件,修改value属性
    • 6.vue文件调用


一、store基础用法

1.在src下新建store文件夹,在store下新建module文件夹

在这里插入图片描述

2.在module下新建enums.js文件

export default {namespaced: true, // 开启命名空间state: {options: {modeList: [// 成像模式下拉{id: '聚束SP',value: '聚束SP'},{id: '条带SM',value: '条带SM'},{id: 'TP',value: 'TOPS'},{id: '窄扫NS',value: '窄扫NS'},{id: '宽扫ES',value: '宽扫ES'}],orbitList: [// 升降轨限制下拉{id: '均可',value: '均可'},{id: '升轨',value: '升轨'},{id: '降轨',value: '降轨'}],}}
};

3.在store下新建getters.js文件

const getters = {userInfo: (state) => state.user.userInfo, // 用户信息language: (state) => state.user.language, // 用户信息Satellite: (state) => state.user.Satellite, // 用户信息token: (state) => state.user.token, //userId: (state) => state.user.userId,routes: (state) => state.permission.routes,
};
export default getters;

4.在store下新建index.js文件

import Vue from 'vue';
import Vuex from 'vuex';
import getters from './getters';
import permission from './module/permission';
import user from './module/user'; // 用户信息
import enums from './module/enums'; // 枚举统一
Vue.use(Vuex);export default new Vuex.Store({state: {},getters,mutations: {},actions: {},modules: {user,permission,enums}
});

5.修改src下main.js文件

import Vue from 'vue';
import App from './App.vue';
import store from './store';Vue.config.productionTip = falsenew Vue({store,render: (h) => h(App)
}).$mount('#app');

6.vue文件调用

<template><el-selectv-model="param.img_mode"size="mini"style="width: 100%":placeholder="'programOrder.ImagingMode"@change="count"><el-optionv-for="(item, index) in selectoptions.modeList":key="index":label="item.value":value="item.id"/></el-select>
</template>export default {created() {this.selectoptions = this.$store.state.enums.options;},
}

在这里插入图片描述

二、中英文翻译

1.在src下建立中英文翻译的文件夹language,继续新建en.js、zh.js、index.js文件

在这里插入图片描述

2.en.js和zh.js内容

en.js如下

module.exports = {// 编程订单programOrder: {SpotLight: 'SpotLight - SP',StripMap: 'StripMap - SM',ScanSARNarrow: 'ScanSAR Narrow - NS',ScanSARWide: 'ScanSAR Wide - ES',}
}

zh.js如下

module.exports = {// 编程订单programOrder: {SpotLight: '聚束SP',StripMap: '条带SM',ScanSARNarrow: '窄扫NS',ScanSARWide: '宽扫ES',}
}

3.index.js内容

import elementEn from 'element-ui/lib/locale/lang/en';
import elementCn from 'element-ui/lib/locale/lang/zh-CN';
import Vue from 'vue';
import VueI18n from 'vue-i18n';
import enLocale from './en';
import usLocal from './zh';
Vue.use(VueI18n);
const messages = {zh: {...usLocal,...elementCn},en: {...enLocale,...elementEn}
};
const i18n = new VueI18n({locale: localStorage.getItem('language') || 'zh', // 通过this.$i18n.locale的值实现语言切换messages
});export default i18n;

4.修改src下main.js文件

import Vue from 'vue';
import App from './App.vue';
import store from './store';
import i18n from './language';Vue.config.productionTip = falsenew Vue({store,i18n,render: (h) => h(App)
}).$mount('#app');

5.修改enums.js文件,修改value属性

注意value的值

export default {namespaced: true, // 开启命名空间state: {options: {modeList: [// 成像模式下拉{id: '聚束SP',value: 'programOrder.SpotLight'},{id: '条带SM',value: 'programOrder.StripMap'},{id: 'TP',value: 'TOPS'},{id: '窄扫NS',value: 'programOrder.ScanSARNarrow'},{id: '宽扫ES',value: 'programOrder.ScanSARWide'}],orbitList: [// 升降轨限制下拉{id: '均可',value: '均可'},{id: '升轨',value: '升轨'},{id: '降轨',value: '降轨'}],}}
};

6.vue文件调用

注意label的值

<template><el-selectv-model="param.img_mode"size="mini"style="width: 100%":placeholder="$t('programOrder.ImagingMode')"@change="count"><el-optionv-for="(item, index) in selectoptions.modeList":key="index":label="$t(item.value)":value="item.id"/></el-select>
</template>export default {created() {this.selectoptions = this.$store.state.enums.options;},
}
http://www.lryc.cn/news/169459.html

相关文章:

  • ISCSI:后端卷以LVM 的方式配置 ISCSI 目标启动器
  • 八公山豆腐发展现状与销售对策研究
  • 排序算法-插入排序
  • 多位数按键操作(闪烁)数码管显示
  • MyEclipse项目导入与导出
  • ArrayList和LinkedList
  • Linux 配置 Nginx 服务完整详细版
  • Python实现猎人猎物优化算法(HPO)优化LightGBM回归模型(LGBMRegressor算法)项目实战
  • 无涯教程-JavaScript - ODD函数
  • Easyui里的datagrid嵌入select下拉框
  • 计算机专业毕业设计项目推荐03-Wiki系统设计与实现(JavaSpring+Vue+Mysql)
  • 微服务的艺术:构建可扩展和弹性的分布式应用
  • 在PHP8中对数组进行排序-PHP8知识详解
  • Redis混合模式持久化原理
  • 《BPF Performance Tools —— 洞悉Linux系统和应用性能》学习笔记 —— 第一章 介绍(2)
  • 【计算机网络】网络编程接口 Socket API 解读(7)
  • crypto++下载、安装(VS2017)及加解密使用
  • R语言画图
  • redis 核心数据结构
  • RabbitMQ消息可靠性(一)-- 生产者消息确认
  • 9 种方法使用 Amazon CodeWhisperer 快速构建应用
  • 性能测试-性能工程落地的4个阶段(21)
  • 小程序 navigateBack 携带参数返回的三种方式(详细)
  • 通过内网穿透实现远程连接群晖Drive,轻松实现异地访问群晖NAS
  • vue3 + vite常用工具
  • Vue框架分享与总结
  • 声音生成评价指标——使用声音分类模型评价生成声音质量(基于resnetish、VGGish、AlexNet)
  • HarmonyOS学习路之方舟开发框架—学习ArkTS语言(状态管理 六)
  • SPA首屏加载速度慢
  • JVM执行流程