当前位置: 首页 > news >正文

uniapp+vue3开发项目之引入vuex状态管理工具

前言:

        我们在vue2的时候常用的状态管理工具就是vuex,vue3开发以后,又多了一个pinia的选项,相对更轻便,但是vuex也用的非常多的,这里简单说下在uni-app中vuex的使用。

实现步骤:

1、安装:

npm install vuex@next --save
# 或
yarn add vuex@next

2、创建我们的store文件夹与下面的index.js

因为项目中一般不用一个文件,这里用了一个user.js来表示子级

src/
├── store/
│   ├── index.js          # 主入口文件
│   ├── modules/          # 模块目录
│   │   ├── user.js       # 用户模块

3、index.js

import { createStore } from 'vuex'
import user from './modules/user'export default createStore({modules: {user,},state: {appName: '项目1'},mutations: {SET_AppName(state, data) {state.appName = data}},actions: {async changAppName({ commit }, query) {commit('SET_AppName', '新项目名称')}},getters: {appTitle: state => state.appName,}
})

4、modules/user.js

export default {//当多模块整合时,actions和mutations会整合为数组,//但是getters不会,它是唯一的,不会整合,//所以为了getters正常使用的同时每个模块具有独立性和可复用namespaced: true,state: () => ({token: '',}),mutations: {SET_TOKEN(state, token) {state.token = token}},actions: {async login({ commit }, credentials) {// const res = await uni.request({//   url: '/api/login',//   method: 'POST',//   data: credentials// })// commit('SET_TOKEN', res.data.token)commit('SET_TOKEN', '1111')}},getters: {userToken: state => state.token}
}

5、具体页面的使用

<template>------------------vuex内容:<view>{{appName}}</view><view>{{appTitle}}</view>------<view>{{token}}</view><view>{{userToken}}</view>
</template>
<script setup>//index.js中定义的变量
const appName = computed(() => store.state.appName)
const appTitle = computed(() => store.getters.appTitle)//user.js中定义的变量
const token = computed(() => store.state.user.token)
const userToken = computed(() => store.getters['user/userToken'])// index.js中定义的方法
store.dispatch('changAppName', {})
store.commit('SET_AppName', 'Alice')// user.js中定义的方法
store.dispatch('user/login', {})
store.commit('user/SET_TOKEN','3333')

http://www.xdnf.cn/news/429301.html

相关文章:

  • 修改(替换)文件中的指定内容并保留文件修改前的时间(即修改前后文件的最后修改时间保持不变)
  • 我们该如何使用DeepSeek帮我们减负?
  • 深度Q网络(DQN)的基本概念
  • 【WebApi】YiFeiWebApi接口安装说明
  • JVM Optimization Learning(七)-GC
  • HttpSession 的运行原理
  • 利用自适应双向对比重建网络与精细通道注意机制实现图像去雾化技术的PyTorch代码解析
  • C语言中的assert
  • Trae IDE:AI深度集成的智能开发环境
  • Linux下使用systemd部署c++服务
  • 星云智控自定义物联网实时监控模板-为何成为痛点?物联网设备的多样化-优雅草卓伊凡
  • 武汉大学无人机视角下的多目标指代理解新基准!RefDrone:无人机场景指代表达理解数据集
  • 推荐算法工程化:ZKmall模板商城的B2C 商城的用户分层推荐策略
  • c++STL-通用(反向)迭代器适配器
  • vue 中绑定样式 【style样式绑定】
  • Deepseek+Xmind:秒速生成思维导图与流程图
  • 聊天项目总结
  • 《操作系统真象还原》第十四章(2)——文件描述符、文件操作基础函数
  • 浅聊一下数据库的索引优化
  • 基于PHP的九宫格抽奖系统设计与实现 九宫格抽奖系统开发与实现(PHP+MySQL)抽奖逻辑、奖品发放与活动管理
  • 《Python星球日记》 第67天:Transformer 架构与自注意力机制
  • spring中的@Async注解详解
  • 随言随语(十二):盖章
  • jackson-dataformat-xml引入使用后,响应体全是xml
  • 龙虎榜——20250513
  • 专栏特辑丨悬镜浅谈开源风险治理之SBOM与SCA
  • 基于AI的报告平台
  • CSS3 选择器完全指南:从基础到高级的元素定位技术
  • 『大模型笔记』Langchain作者Harrison Chase专访:环境智能体与全新智能体收件箱
  • 如何访问云相关的api