vue3的store使用学习

        store状态管理,用来进行组件的通信和数据运行缓存,四大组成部分分为nameSpace空间,state,mutation,去修改state的内容;action,去异步触发mutation里面的一个方法。

        参考vue3 中 store 使用getters、mutation、action_哔哩哔哩_bilibili

vue3+threejs可视化项目——搭建vue3+ts+antd路由布局(第一步)_vue3 threejs-CSDN博客

        在vue-vben-admin的项目基础上进行修改,在src/store/modules目录下添加dept.ts的store文件,保存和获取选择的id,用到了state,getters,actions.actions里添加setSelectedDept(),保存传入的id和name,getters里添加getDeptId(),getDeptName()获取id和name。

dept.ts

import { defineStore } from 'pinia';
import { store } from '/@/store';
import { CurrentDeptInfo } from '/#/store';

export const useDeptStore = defineStore({
  id: 'app-dept',
  state: (): CurrentDeptInfo => ({
    id: '',
    name: '',
  }),
  actions: {
    setSelectedDept(deptInfo: CurrentDeptInfo) {
      this.id = deptInfo.id;
      this.name = deptInfo.name;
    },
  },
  getters: {
    getDeptId(): string {
      return this.id;
    },
    getDeptName(): string {
      return this.name;
    },
  },
});
export function useDeptStoreWithOut() {
  return useDeptStore(store);
}
store.d.ts
export interface CurrentDeptInfo {
  id: string;
  name: string;
}
在页面模块引入import { useDeptStore } from '/src/store/modules/dept';将下拉框选中的选项id和名称传到store文件。在下拉框绑定的方法onChangeDept()添加
const onChangeDept = (value) => {
        console.log('Selected department:', value);
        dept.setSelectedDept(value);
      };

将获取到的id和name通过setSelectedDept()传到store

Vue3中使用Vuex的步骤如下:首先,通过Vue CLI 3搭建Vue项目,并安装Vuex。在Vue项目中,引入Vuex并创建一个store实例。使用useStore函数来获取store实例。然后,可以在组件中通过导入useStore函数来获取store实例,并使用store.commit来提交mutation,实现对state的修改。在Vuex中,可以维护state的构建,并通过组件访问store实现组件间的交互。可以使用ajax请求从云端动态获取数据,并实现当前登录用户的动态发帖和删帖功能。最后,可以根据具体需求实现其他功能,如登录验证方式和注册功能。总之,使用Vue3和Vuex可以更方便地管理和共享组件状态,实现组件间的数据交互。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Vue3 学习——vue使用vuex(超详细)](https://blog.csdn.net/qq_46201146/article/details/125805058)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [Vue CLI 3搭建vue+vuex最全分析(推荐)](https://download.csdn.net/download/weixin_38729607/12951555)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [Vue3中Vuex的使用](https://blog.csdn.net/qq_45934504/article/details/123462736)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值