crm开发定制element学习——el-config-provider(切换系统语言)

crm开发定制写代码的时候,在app.vuecrm开发定制里面经常看到el-config-provider这个组件,crm开发定制之前都没有思考是用来干啥的,毕竟我也不怎么接触app.vue这个文件,平时都是写几个简单界面。

这次是因为leader新开的项目,里面有用到一些别人的框架,实际还是vue,然后里面有一个切换语言的功能,之前也是看到过,但是没有细究,这次仔细看了看,就看到app.vue里面引用了中文语言,如下:

app.vue

  1. <template>
  2. <el-config-provider :locale="locale" namespace="el" size="small">
  3. <router-view />
  4. </el-config-provider>
  5. </template>
  6. <script setup>
  7. import { setToken } from '@/utils/auth'
  8. import { useAppStore } from '@/store/app'
  9. import zhCn from 'element-plus/lib/locale/lang/zh-cn'
  10. let locale = $ref(zhCn) //中文
  11. // import en from 'element-plus/lib/locale/lang/en'
  12. // let locale = $ref(en) //english
  13. const appStore = useAppStore()
  14. const settings = computed(() => {
  15. return appStore.settings
  16. })
  17. onBeforeMount(() => {
  18. //set tmp token when setting isNeedLogin false
  19. if (!settings.value.isNeedLogin) setToken(settings.value.tmpToken)
  20. })
  21. </script>

引用中文后,将其命名为locale,并且 el-config-provider里面有locale这个属性,所以去学习了这个组件。

el-config-provider

首先,el-config-provider被用来提供全局的配置选项,让配置能够在全局都能够被访问到,Config Provider使用了vue的provide/inject特性.

然后,它的属性有locale

参数说明类型可选值默认值
locale翻译文本对象Object<Language>English

那看到这里就明白了,只能切换语言。

除此之外,我还看了vue里的Provide / 。

下面是文档里的解释:

插件中的 Provide / Inject

在插件中,我们可以通过 provide 来为插件用户供给一些内容。举例来说,我们可以将插件接收到的 options 参数提供给整个应用,让任何组件都能使用这个翻译字典对象。

js

  1. // plugins/i18n.js
  2. export default {
  3. install: (app, options) => {
  4. app.config.globalProperties.$translate = (key) => {
  5. return key.split('.').reduce((o, i) => {
  6. if (o) return o[i]
  7. }, options)
  8. }
  9. app.provide('i18n', options)
  10. }
  11. }

现在,插件用户就可以在他们的组件中以 i18n 为 key 注入并访问插件的选项对象了。

js

  1. export default {
  2. inject: ['i18n'],
  3. created() {
  4. console.log(this.i18n.greetings.hello)
  5. }
  6. }

不过我并没有试过,等下次试过,我再来继续记录。 

网站建设定制开发 软件系统开发定制 定制软件开发 软件开发定制 定制app开发 app开发定制 app开发定制公司 电商商城定制开发 定制小程序开发 定制开发小程序 客户管理系统开发定制 定制网站 定制开发 crm开发定制 开发公司 小程序开发定制 定制软件 收款定制开发 企业网站定制开发 定制化开发 android系统定制开发 定制小程序开发费用 定制设计 专注app软件定制开发 软件开发定制定制 知名网站建设定制 软件定制开发供应商 应用系统定制开发 软件系统定制开发 企业管理系统定制开发 系统定制开发