You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Quasar框架下如何在vuex模块中正确导入使用vue-i18n?

错误原因

  • useI18n 是Vue3组合式API专属方法,仅允许在组件的setup函数、<script setup>代码块,或者自定义组合式函数内部调用,普通JS/TS文件、Vuex逻辑不属于该上下文,因此触发调用位置错误。
  • 第二种写法存在两个问题:
    1. 你的boot文件中i18n是命名导出(export { i18n }),不是默认导出,import i18n from 'boot/i18n'拿到的是Quasar的boot注册函数,不是i18n实例
    2. vue-i18n v9+的全局翻译方法挂载在i18n.global属性下,直接调用i18n.t不存在对应方法

正确使用方法

直接导入boot文件中导出的i18n实例,通过global.t调用翻译方法即可:

// vuex 或其他任意JS/TS文件中导入
import { i18n } from 'boot/i18n'

// 调用翻译
const text = i18n.global.t('common.user')

Vuex使用示例

// store/modules/user.js
import { i18n } from 'boot/i18n'

export default {
  state: {
    notifyMsg: ''
  },
  mutations: {
    SET_NOTIFY(state) {
      state.notifyMsg = i18n.global.t('common.loginSuccess')
    }
  },
  actions: {
    login({ commit }) {
      // 登录逻辑
      commit('SET_NOTIFY')
    }
  }
}

内容的提问来源于stack exchange,提问作者Sanzhar Alimkhanov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 12:45:04