element学习——el-config-provider(切换系统语言)

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

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

app.vue

<template>
  <el-config-provider :locale="locale" namespace="el" size="small">
    <router-view />
  </el-config-provider>
</template>
<script setup>
import { setToken } from '@/utils/auth'
import { useAppStore } from '@/store/app'

import zhCn from 'element-plus/lib/locale/lang/zh-cn'
let locale = $ref(zhCn) //中文

// import en from 'element-plus/lib/locale/lang/en'
// let locale = $ref(en) //english

const appStore = useAppStore()
const settings = computed(() => {
  return appStore.settings
})
onBeforeMount(() => {
  //set tmp token when setting isNeedLogin false
  if (!settings.value.isNeedLogin) setToken(settings.value.tmpToken)
})
</script>

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

el-config-provider

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

然后,它的属性有locale

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

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

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

下面是文档里的解释:

插件中的 Provide / Inject#

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

js

// plugins/i18n.js
export default {
  install: (app, options) => {
    app.config.globalProperties.$translate = (key) => {
      return key.split('.').reduce((o, i) => {
        if (o) return o[i]
      }, options)
    }

    app.provide('i18n', options)
  }
}

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

js

export default {
  inject: ['i18n'],
  created() {
    console.log(this.i18n.greetings.hello)
  }
}

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

  • 6
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
`el-config-provider` 是 Element Plus 提供的全局配置组件,用于设置全局的配置项。通过 `el-config-provider`,你可以在整个项目中统一配置 Element Plus 的组件行为、样式和语言等。 下面是一个示例,演示如何使用 `el-config-provider` 进行全局配置: 1. 在你的 Vue 项目中,安装 Element Plus 并引入 `el-config-provider` 组件: ```shell npm install element-plus ``` ```javascript import { createApp } from 'vue' import ElementPlus from 'element-plus' import 'element-plus/lib/theme-chalk/index.css' const app = createApp(App) app.use(ElementPlus) ``` 2. 在你的项目中使用 `el-config-provider` 组件包裹需要进行全局配置的组件。例如,你可以在根组件中使用 `el-config-provider` 包裹整个应用: ```html <template> <el-config-provider :locale="locale"> <router-view></router-view> </el-config-provider> </template> <script> export default { data() { return { locale: 'en' // 设置默认语言为英文 } } } </script> ``` 3. 在 `el-config-provider` 的属性中,可以设置一些全局配置项。例如,你可以通过 `:locale` 属性来设置语言: ```html <el-config-provider :locale="locale"> <!-- 其他组件 --> </el-config-provider> ``` 4. 在 `el-config-provider` 内部的组件中,可以通过 `$ELEMENT` 对象来访问全局配置项。例如,你可以通过 `$ELEMENT.size` 来获取全局的尺寸配置: ```html <el-button size="$ELEMENT.size"></el-button> ``` 通过以上步骤,你可以使用 `el-config-provider` 组件来统一配置 Element Plus 的全局行为和样式。在 `el-config-provider` 中设置的全局配置项会应用于其内部的所有组件。你可以根据需要设置不同的全局配置项,例如语言、尺寸、字体等。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值