vue3中使用vuex
一、使用习惯1(模块化):
1、文件目录:
2、userStore.ts
import { Module } from 'vuex'; // import {setStorage,getStorage} from "../../util/common"; export default { namespaced: true, state: { userInfo: { } }, getters: { // 类似计算属性,必需return handleUserInfo: (state) => { return state.userInfo.age = 20; } }, actions: { // 异步过程,调用mutations中方法改变state asyncUpdateUserInfo(store, newData) { // 第一个参数是vuex固定的参数,不需要手动去传递 store.commit("updateUserInfo", newData) }, }, mutations: { // 改变state updateUserInfo(state, newData: { }) { state.menuList = newData; } } } as Module<any, any>;
3、vue文件中使用
(1)state(使用数据)
<template>{{ userInfo.name }}</template> import { useStore } from 'vuex'; const store = useStore(); const { userInfo } = toRefs(store.state.userStore);
(2)mutations(常规改变数据状态)=> commit -> mutations
import { useStore } from "vuex" const store = useStore() const changeStoreUserInfo = () => { store.commit("userStore/updateUserInfo", {name: '小明'}) }
(3)actions(异步改变数据状态)=> dispach -> mutations
import { useStore } from "vuex" const store = useStore() const asyncChangeStore = () => { setTimeout(() => { store.dispatch("userStore/asyncUpdateUserInfo", {name: '小李'}) }, 1000)
(4)getters(类似计算属性,需return)
如文件 2、userStore.ts 中 getters。
二、使用习惯2(无模块化):
文件目录
本文来自博客园,作者:RHCHIK,转载请注明原文链接:https://www.cnblogs.com/suihung/p/17007758.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)