当前位置: 首页 > 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')

相关文章:

  • 内存泄漏系列专题分析之十三:高通相机CamX内存泄漏内存占用分析--Camx pipeline的ION内存拆解方法
  • 从 Vue3 回望 Vue2:响应式的内核革命
  • 【bag of n-grams】 N-gram词袋模型 简介
  • 已情感分析入门学习大模型-初级篇
  • 进程与线程:09 进程同步与信号量
  • QLineEdit增加点击回显功能
  • Python 字典键 “三变一” 之谜
  • WebGIS 开发中的数据安全与隐私保护:急需掌握的要点
  • 带格式的可配置文案展示
  • 典籍指数问答模块回答格式修改
  • 深入浅出:C++数据处理类与计算机网络的巧妙类比
  • 嵌入式学习--江协51单片机day5
  • PostgreSQL 配置设置函数
  • SQL Server中delete table和truncate table删除全表数据哪个快?
  • 文件操作: File 类的用法和 InputStream, OutputStream 的用法
  • 基于SSM实现的健身房系统功能实现十六
  • 操作系统导论——第29章 基于锁的并发数据结构
  • 代理IP的核心原理:从请求转发到匿名性实现
  • 如何界定合法收集数据?
  • 消息~组件(群聊类型)ConcurrentHashMap发送
  • 气候多米诺:厄尔尼诺与东南亚跨境害虫或威胁中国粮食安全
  • 西北大学副校长成陕西首富?旗下巨子生物去年净利超20亿,到底持股多少
  • 印称印巴军事行动总指挥同意将局势降级
  • 万科:存续债券均正常付息兑付
  • OpenAI与微软正谈判修改合作条款,以推进未来IPO
  • 火车站员工迟到,致出站门未及时开启乘客被困?铁路部门致歉