vue3 后台管理框架geeker admin -- 全局配置(了解)

0 环境

1 参考文档

geeker admin官方文档

element-plus官方文档

vue router官方文档

App.vue

global.ts

Config Provider 全局配置

vue-i18n

vue-i18n简单的demo

2 前言

要想在线看源码的,请点开上面的参考文档 App.vue查看具体源码,本地的源码位置:src/App.vue,下面我就会直接用App.vue替代了。还有global.ts参考文档上也有,本地位置在:src/stores/modules/global.ts

3 大体了解

看下图: 这里先大致看下代码,跟el-config-provideruseGlobalStore有关。看一看el-config-provideruseGlobalStore如何初始化的。

image.png

4 Config Provider 全局配置

首先看官方文档。

image.png

语言、组件大小、按钮是否要空格。

image.png

5 代码分析

先看下globalStore的默认值。

image.png

1 初始化语言

1 了解vue-i18n

这里我们看到了useI18n来自vue-i18n中,

image.png

如下图,再找到package.json,确实是第三方的库,而并不是自定义的,搜索一下,vue-i18n。

image.png

找到vue-i18n的文档后(不想找的,上面有官方链接或者看我的截图)。如下图:

image.png

跟着文档的步骤找到main.ts,虽然格式没问题,但没看到createI18n呀,那么大概率@/languages/index里了,如下图是没有的。

image.png

  • allowComposition: true:这可能是指使用组合模式来处理国际化的内容。这样可以使你的语言文件更加模块化,并允许你在多个文件或部分中重用相同的翻译。

  • legacy 的默认值设为 false,意味着默认是不使用遗留的方案,而是采用新的国际化方案。

  • locale: getBrowserLang(),:这表示默认的语言设置是基于浏览器的语言。getBrowserLang() 是一个函数,它检测并返回浏览器的当前语言(如下图所示,判断是中文返回中文,否则就是英文)。

image.png

  • messages: { zh, en }:这是保存有所需翻译信息的对象,当然这里是可以拓展的,看个人需要加语言。对象的每个属性(如 zh, en)包含一个对应语言(在此为中文、英文)的翻译信息对象。这个翻译信息对象将根据上面设置的 locale 的值在页面上显示相应的语言。如下图,中英文的定义其实没啥,就是value不一样,key字段都一样的。

image.png

想要看具体的demo,可以找到上面的vue-i18n简单的demo链接,这个是官方提供的demo。具体截图如下,可以看出只要createI18n定义好了后,就可以用$t('xxx')的格式得到自己想要的中/英文值。

image.png

2 onMounted

App.vue下24-30行,第25行是使用i18n实例,第27行默认语言是null,那么会从浏览器中得到对应的语言,上面有说过。分别被i18n.locale.valueglobalStore language存入,并且断言为LanguageType包含了"zh" | "en" | null(假如你又有其它语言,别忘了在LanguageType中补充一下)。

image.png

2 element language

这里从globalStore.language拿到的是中文,那么返回element plus中文的语言,若拿到的是英文,就返回element plus英文的语言包,假如都不是,判断不是中文的话,一律视为英文。

image.png

3 其它

请看下40-43行,这里的assemblySize拿到的是全局globalStore里的默认值。一旦它的值发生变化,这里的全局组件它的大小也会及时更新上去的。button元素默认不要有空格。

image.png

6 总结

el-config-providerelement plus提供给我们全局配置的一个方案,比如常规用到的语言、组件大小、按钮是否要空格。初始化语言的时候,会用到vue-i18n,因为el-config-provider主要是为 Element Plus 组件库设置语言环境,以确保这些组件能够使用正确的语言。而vue-i18n包含了整个应用,为其提供国际化的支持,说白了就是element plus够不着的地方,就是它的底盘,比如文本。还有它俩语言设置是一致的(看onMounted)。其它的就简单了,就是从globalStore拿数据,顶多再加个判断。还有一个initTheme待续。

原文:https://juejin.cn/post/7381781956726898700

  • 20
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我们来一步步搭建一个基于vue-admin-template的后台管理系统。 ## 1. 准备工作 首先需要安装好node.js和npm,并确保版本符合要求。然后我们需要安装vue-cli脚手架工具,通过以下命令安装: ``` npm install -g vue-cli ``` 安装完成后,我们就可以使用vue-cli来创建一个基于vue-admin-template的项目了。 ## 2. 创建项目 使用以下命令创建一个vue-admin-template项目: ``` vue init vuejs-templates/admin vue-admin-demo ``` 其中,vue-admin-demo为项目名称,根据自己的需要修改即可。 创建完成后,进入项目目录并安装依赖: ``` cd vue-admin-demo npm install ``` 安装完成后,我们可以启动项目并查看效果: ``` npm run dev ``` 打开浏览器,访问http://localhost:9528,就可以看到一个基于vue-admin-template的后台管理系统了。 ## 3. 配置路由 在src/router/index.js文件中,我们可以看到已经定义了一个路由: ```javascript import Vue from 'vue' import Router from 'vue-router' import HelloWorld from '@/components/HelloWorld' Vue.use(Router) export default new Router({ routes: [ { path: '/', name: 'HelloWorld', component: HelloWorld } ] }) ``` 我们可以根据自己的需要修改这个路由,添加更多的路由信息。比如,我们可以添加一个Dashboard页面的路由: ```javascript import Vue from 'vue' import Router from 'vue-router' import HelloWorld from '@/components/HelloWorld' import Dashboard from '@/views/dashboard/index' Vue.use(Router) export default new Router({ routes: [ { path: '/', name: 'HelloWorld', component: HelloWorld }, { path: '/dashboard', name: 'Dashboard', component: Dashboard } ] }) ``` ## 4. 配置菜单 在src/layout/components/Sidebar/index.vue文件中,我们可以看到已经定义了一个菜单: ```javascript <el-submenu index="1"> <template slot="title"> <i class="el-icon-location"></i> <span>Dashboard</span> </template> <el-menu-item index="1-1">Dashboard 1</el-menu-item> <el-menu-item index="1-2">Dashboard 2</el-menu-item> <el-menu-item index="1-3">Dashboard 3</el-menu-item> </el-submenu> ``` 我们可以根据自己的需要修改这个菜单,添加更多的菜单项。比如,我们可以添加一个Dashboard页面的菜单项: ```javascript <el-submenu index="1"> <template slot="title"> <i class="el-icon-location"></i> <span>Dashboard</span> </template> <el-menu-item index="/dashboard">Dashboard</el-menu-item> </el-submenu> ``` ## 5. 配置页面 我们可以在src/views目录下添加自己的页面,比如Dashboard页面。创建一个dashboard目录,并在其中添加一个index.vue文件。 在index.vue文件中,我们可以像普通的vue组件一样编写代码,比如: ```vue <template> <div> <h1>Dashboard</h1> </div> </template> <script> export default { name: 'Dashboard' } </script> ``` ## 6. 打包部署 当我们完成了开发工作后,就可以将项目打包部署到生产环境中了。使用以下命令进行打包: ``` npm run build ``` 打包完成后,会在项目根目录下生成一个dist目录,里面包含了打包后的文件。 我们可以将dist目录中的文件上传到服务器,并配置好Web服务器,以便访问我们的后台管理系统。 至此,我们就完成了基于vue-admin-template的后台管理系统的搭建。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值