怎么在vue3的顶层文件中(main.ts / router.ts)使用第三方插件提供的函数钩子?

怎么在vue3的顶层文件中(main.ts / router.ts)使用第三方插件提供的函数钩子?
问题: 我要在router中使用i8n的功能这样引入使用会报错,我就算main.ts去设置也不行;
router.ts:
import { useI18n } from "vue-i18n";
const { t } = useI18n();

{

path: `/${t("Precompiler")}View`,
name: `${t("Precompiler")}View`,
component: () => import("@/views/cssToolView/cssToolView.vue")

},
这样直接报错: 意思是必须在setup中使用
message-compiler.esm-bundler.js:54 Uncaught SyntaxError: Must be called at the top of a setup function (at message-compiler.esm-bundler.js:54:19)

at createCompileError (message-compiler.esm-bundler.js:54:19)
at createI18nError (vue-i18n.esm-bundler.js:100:12)
at useI18n (vue-i18n.esm-bundler.js:2214:15)
at index.ts:12:15

我就算在route.ts中这么写也不行:
function createRoutes( { t } = useI18n() ) {

  console.log('587031', t("Precompiler"));
  return [];

}
createRoutes();

阅读 2.1k
1 个回答

可以直接用i18n的全局对象.

const { global: {t, locale}} = createI18n()
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Microsoft
子站问答
访问
宣传栏