IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> 【vue3: vuex4 状态管理库】使用&讲解 -> 正文阅读

[JavaScript知识库]【vue3: vuex4 状态管理库】使用&讲解

本文章目的:快速上手vue3 的 vuex ,并了解各个常用的功能。

不常用的和非必要的在此不进行讲述,需要更完善自己的请查看官网。

【建议使用Pinia代替vuex > 移步我pinia文章】


1、安装

npm install vuex@next --save

2、createStore 创建、封装 vuex4 store模块,并在main.ts/js 中引用。

/src/store/index.ts

// 在src文件夹下新建store文件夹,所有相关的状态管理封装都在store文件夹下


import { createStore } from 'vuex'
import m1 from './m1'

// 创建一个新的 store 实例
export const store = createStore({
  modules:{
    m1
  },
  state () {
    return {
      vuexText: 'vuex--Text'
    }
  },
  getters:{
    getters_vuexText(state){
      return state.vuexText + '++++额外的getters_vuexText'
    },
    getters_fn(state){
      return ()=>{
        return state.vuexText + '*-*-*-*-* 这是vuex函数式返回'
      }
    }
  },
  mutations: {
    increment (state) {
      // this.$store.commit('increment')
      // 变更状态
      console.log(state);
      state.vuexText = '更改数据后的vuexText'
    }
  },
  actions: {
    increment2 ({commit}) {
      commit('increment')
    }
  }
})
/src/store/m1.ts

export default {
  namespaced: true, // moidules 模块开启 `命名空间` < 注意这个词,后面会出现!!
  state(){
    return {
      m1Text: ' m1Text'
    }
  },
  getters:{
    getters_m1Text(state){
      return state.m1Text + 'modules 的 getters'
    },
  },
  mutations: {
    moduleMu1 (state,data) { // 就接收2个参数
      // console.log(data,'commit()第二个参数将作为实参传递到这');
      state.m1Text = '更改数据后的 m1Text'
    }
  },
  actions: {
    moduleAc1 ({commit},data) { // 就接收2个参数
      // console.log(data,'dispatch()第二个参数将作为实参传递到这');
      commit('moduleMu1')
    }
  }
}
/src/main.ts

import {store} from './store/index' // 引入vuex4 封装好的 store 模块

import { createApp } from 'vue'
import App from './App.vue'
const app = createApp(App)
app.use(store) // use() 挂挂载 store 模块

// .....

?3、使用:

(仅讲述在 setup 语法糖下的使用方法,在options api内的使用方法同vue2一样,不讲这一块)

<template>
  <div>createStore 里的 modules 里模块下的使用</div>
  <div>模块内 state 的引用: {{ store.state.m1.m1Text }}</div>
  <!-- <div>模块内 getters 的引用: {{ store.getters.getters_m1Text }}</div> -->
  <div>开启模块 `命名空间` getters 的引用: {{ store.getters['m1/getters_m1Text'] }}</div>


  <div>非 createStore 里的 modules 里模块下的使用</div>
  <div>vuex数据的方式之一 》》》 {{store.state.vuexText}}</div>
  <div>vuex数据的方式之一 》》》 {{store.getters.getters_fn()}}</div>
  <div>vuex数据的方式之一 》》》 {{store.getters.getters_vuexText}}</div>
</template>
<script lang="ts" setup>
import { useStore } from 'vuex'
const store = useStore()
console.log(store,"vuex - useStore()的返回值");


// 调用 actions 就store.dispatch("action2") // 接收2个参数,第一个是方法名,第二个是传递的数据
// 调用 mutations 就store.commit("mutations2") // 接收2个参数,第一个是方法名,第二个是传递的数据
setTimeout(() => {
  // store.commit('increment')
  // store.dispatch('moduleAc1') // 默认情况下,模块内部的 action 和 mutation 仍然是注册在全局命名空间

  store.dispatch('m1/moduleAc1',{ amount: 10 }) // 开启模块 `命名空间` 后调用规则: '[模块名]/[actions里的方法名]'
  // store.commit('m1/moduleMu1')
}, 3000);

</script>

系统 提示要我多水下行数。。

系统 提示要我多水下行数。。

系统 提示要我多水下行数。。

系统 提示要我多水下行数。。

系统 提示要我多水下行数。。

系统 提示要我多水下行数。。

系统 提示要我多水下行数。。

系统 提示要我多水下行数。。

系统 提示要我多水下行数。。

系统 提示要我多水下行数。。

系统 提示要我多水下行数。。

系统 提示要我多水下行数。。

系统 提示要我多水下行数。。

系统 提示要我多水下行数。。

系统 提示要我多水下行数。。

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2022-09-24 20:47:38  更:2022-09-24 20:50:37 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 10:40:51-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码