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

Vue3 <script setup>语法使用报错问题求助

问题解决方案

你的问题出在<script setup>语法中不存在this上下文,原来基于选项式API的this.$store和this.$router写法不再适用。

修改后的代码如下:

<template>
  <button class="nav-link" @click.prevent="logOut">LogOut</button>
  <RouterView />
  <DarkMode />
</template>

<script setup lang="ts">
import DarkMode from './components/DarkMode.vue'
import { useStore } from 'vuex'
import { useRouter } from 'vue-router'

const store = useStore()
const router = useRouter()

const logOut = () => {
  store.dispatch('auth/logout')
  router.push('/login')
}
</script>

<style lang="scss"></style>

关键修改点:

  • 导入Vuex的useStore和Vue Router的useRouter组合式API钩子
  • 通过钩子函数创建store和router实例
  • 用实例调用dispatch和push方法,替代原有的this写法

<script setup>是组合式API的语法糖,它没有选项式API中的组件实例this,必须通过对应的钩子函数获取store、router这类全局对象的实例。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 21:25:24