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

Vue.js中访问全局$state提示未定义,求解决方法

解决Vue全局可观察变量$state未定义的问题

问题根源

你在组件方法中直接使用$state,但挂载在Vue.prototype上的属性无法在组件内部直接访问,必须通过组件实例的this关键字调用。同时ESLint会因识别不到未声明的变量抛出no-undef错误。

修复方案

1. 修改组件方法代码

将直接使用的$state改为this.$state,组件实例会继承Vue原型上的属性,因此可以通过this访问:

export default {
  methods: {
    showup() {
      if (this.$state.val === 2) {
        this.$state.val = 1;
      } else {
        this.$state.val = 2;
      }
    },
  },
}

2. 解决ESLint报错(可选)

如果修改后ESLint仍提示$state未定义,可通过以下方式配置:

  • 单文件注释:在组件文件顶部添加全局变量声明注释
/* global $state */
export default {
  // 组件代码
}
  • 全局配置:在项目根目录的.eslintrc.js中添加全局变量规则
module.exports = {
  // 其他配置项
  globals: {
    $state: true
  }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 00:10:40