Vue3.0 在组件外使用 VueI18n 的问题

通常将写在setup里面的代码写在外面会报错

Must be called at the top of a `setup`

意思是必须写在setup里面

要将 i18n 与 Vue 3 的组合 API 一起使用,但在组件的 setup() 之外,需要这么写

// locales/setupI18n.tsimport { App } from 'vue';
import { createI18n } from 'vue-i18n'; // 引入vue-i18n组件
import { messages } from './config';
import globalConfig from '@/config/index';const {setting: { lang: defaultLang },
} = globalConfig;// 注册i8n实例并引入语言文件
const localeData = {legacy: false, // 使用CompotitionAPI必须添加这条.locale: defaultLang,messages,globalInjection: true,
};export const i18n = createI18n(localeData);// setup i18n instance with glob
export const setupI18n = {install(app: App) {app.use(i18n);},
};

这里是关键写法


//某个组合式js文件//报错写法 Uncaught SyntaxError: Must be called at the top of a `setup` 
//import { useI18n } from 'vue-i18n'
//const { t } = useI18n() //正确写法
import { i18n } from '@/locales/setupI18n';
const { t } = i18n.global;


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部