05编写全球化的插件

05编写全球化的插件

在上一章我们使用Pinia实现了全球化。但是在一个应用中不可能只有一个组件,我们需要在每个组件添加重复的计算属性代码,这样很麻烦。而Vue为我们提供了全局扩展属性,这样我们就可以在创建插件时定义扩展属性,在组件中就可以直接使用了。

新增插件文件Plugins/localizationPlugin.ts,添加以下代码完成插件的编写

import { App } from ‘vue’import { useApplicationConfigurationStore } from ‘@/stores/ApplicationConfiguration’const localizationPlugin = { install (app: App) { // 安装全局可用的属性 国际化方法 app.config.globalProperties.$l = (key: string) => { const store = useApplicationConfigurationStore() return store.l(key) } }}export default localizationPlugin// 在Vue中定义扩展全局属性export {} // 注意:没有这行代码将覆盖原始类型declare module ‘vue’ { export interface ComponentCustomProperties { /** * 国际化语言转换 * @param key 国际化配置的Key * @returns 国际化配置的译文 */ $l: (key: string) => string }}

在main.ts中安装插件

import localizationPlugin from ‘@/Plugins/localizationPlugin’ .use(localizationPlugin)

在AboutView.vue控件中就可以直接使用$l了,完整代码:

This is an about page {{ $l(‘LongWelcomeMessage’) }} import { IConfig } from ‘@/api-client/clientBase’import { defineComponent } from ‘vue’import { TestClient } from ‘../api-client/client’import LanguageSelectVue from ‘@/components/selects/LanguageSelect.vue’export default defineComponent({ components: { LanguageSelectVue }, data () { return { // } }, beforeMount () { // }, mounted () { // }, computed: { }, methods: { // }})


比丘资源网 » 05编写全球化的插件

发表回复

提供最优质的资源集合

立即查看 了解详情