Pinia 踩坑记录

1、子store中如何使用router

以user.ts 这个store为例

错误写法

js 复制代码
// 说明:不能使用插件实例化router,否则获取不到router的函数
//	错误写法如下:
	import { useRouter } from "vue-router"
	actions:{
		login(){
			const router = useRouter()
			// 不信你在这里打印router,最终得到的值是undefined  
			console.log(router) // undefined
			router.push('/') // router都取不到更别说跳转了
		}
	}

正确写法

js 复制代码
import router from "@/router"; // 引入自己封装的路由  

actions:{
		login(){
			console.log(router) // 可以获取到router的实例对象
			router.push('/') // 可以跳转
		}
	}

2、router.ts中如何使用store

必须在函数体中实例,否则会报未能找到pinia,让你安装pinia的警告

错误写法

js 复制代码
import { useUserStore } from "@/store";
const useUser = useUserStore();
 
router.beforeEach((to, from, next) => {
  console.log(useUser.loginForm) // 这里是取不到store的
});

正确写法

js 复制代码
import { useUserStore } from "@/store";

router.beforeEach((to, from, next) => {
  const useUser = useUserStore();
  console.log(useUser.loginForm) // 这样就可以取出store的值了
});
相关推荐
Knight_AL3 分钟前
Vue + Spring Boot 项目统一添加 `/wvp` 访问前缀实践
前端·vue.js·spring boot
前端er小芳10 分钟前
前端虚拟列表滚动功能实现与核心知识点详解
前端
wuhen_n11 分钟前
Promise状态机与状态流转
前端
3秒一个大11 分钟前
React 中的 useMemo 与 useCallback:性能优化的利器
前端·react.js
cj814012 分钟前
Node.js基本概念理解
前端·node.js
ohyeah12 分钟前
React 缓存三剑客:useMemo、useCallback 与 memo 的正确打开方式
前端·react.js
程序员爱钓鱼14 分钟前
Node.js 编程实战:JWT身份验证与权限管理
前端·后端·node.js
echo_e17 分钟前
一文看懂 dumi 组件库发包与文档部署全流程!
前端
Geoffwo31 分钟前
electron中拦截请求
前端·javascript·electron
程序员码歌34 分钟前
短思考第268天,自媒体路上的4大坑点,很多人都踩过
android·前端·ai编程