vue中的vuex详解

embedded/2024/10/19 7:03:42/

文章目录

  • vue中的vuex详解
    • 一、引言
    • 二、Vuex 的核心概念
      • 1、State
        • 1.1、定义 State
        • 1.2、访问 State
      • 2、Mutation
        • 2.1、定义 Mutation
        • 2.2、提交 Mutation
      • 3、Action
        • 3.1、定义 Action
        • 3.2、分发 Action
      • 4、Getter
        • 4.1、定义 Getter
        • 4.2、使用 Getter
      • 5、Module
        • 5.1、定义 Module
    • 三、安装和配置 Vuex
      • 1、安装 Vuex
      • 2、配置 Vuex
    • 四、总结

vue中的vuex详解

一、引言

Vuex 是 Vue.js 的官方状态管理模式和库,它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。在开发大型单页应用时,组件间的状态共享和数据传递变得复杂,Vuex 提供了一种集中管理状态的解决方案。

二、Vuex 的核心概念

1、State

State 是 Vuex 存储所有状态的仓库,可以认为是应用的数据中心。任何组件都可以访问和修改 State 中的数据。

1.1、定义 State
import Vue from 'vue';
import Vuex from 'vuex';Vue.use(Vuex);export default new Vuex.Store({state: {count: 0}
});
1.2、访问 State

在组件中可以通过 this.$store.state 访问 State 中的数据。

2、Mutation

Mutation 是同步函数,用于更改 Vuex 的 store 中的状态。每个 mutation 都有一个字符串的事件类型 (type) 和一个回调函数 (handler)。

2.1、定义 Mutation
const mutations = {increment(state) {state.count++;}
};
2.2、提交 Mutation

在组件中通过 this.$store.commit('mutation类型') 提交 mutation。

3、Action

Action 类似于 Mutation,但 Action 提供了执行异步操作的方法。

3.1、定义 Action
const actions = {incrementAsync({ commit }) {setTimeout(() => {commit('increment');}, 1000);}
};
3.2、分发 Action

在组件中通过 this.$store.dispatch('action类型') 分发 action。

4、Getter

Getter 允许组件从 Vuex store 中获取数据,类似于组件中的 computed 属性。

4.1、定义 Getter
const getters = {doubleCount(state) {return state.count * 2;}
};
4.2、使用 Getter

在组件中可以通过 this.$store.getters 访问 getter。

5、Module

Module 允许将 store 分割成模块,每个模块拥有自己的 state、mutation、action、getter。

5.1、定义 Module
const moduleA = {state: { ... },mutations: { ... },actions: { ... },getters: { ... }
};export default new Vuex.Store({modules: {moduleA}
});

三、安装和配置 Vuex

1、安装 Vuex

对于 Vue 3,使用以下命令安装 Vuex:

npm install vuex@4 --save

2、配置 Vuex

在项目中创建一个 store 文件夹,并在其中创建 index.js 文件进行 Vuex 的配置。

import Vue from 'vue';
import Vuex from 'vuex';Vue.use(Vuex);export default new Vuex.Store({state: {// 定义状态},mutations: {// 定义同步修改状态的方法},actions: {// 定义异步修改状态的方法},getters: {// 定义获取状态的方法},modules: {// 定义模块}
});

在 main.js 中引入并使用 store:

import Vue from 'vue';
import App from './App.vue';
import store from './store';new Vue({el: '#app',render: h => h(App),store
});

四、总结

Vuex 是 Vue.js 应用程序的状态管理模式和库,它通过集中式存储管理应用的所有组件的状态,使得状态的变更变得可预测。通过 State、Mutation、Action、Getter 和 Module 等核心概念,Vuex 为开发大型单页应用提供了强大的状态管理能力。


版权声明:本博客内容为原创,转载请保留原文链接及作者信息。

参考文章

  • Vuex详解,一文彻底搞懂Vuex-CSDN博客
  • 【Vue系列】vuex详解,一篇彻底搞懂vuex_vue vuex-CSDN博客

http://www.ppmy.cn/embedded/121036.html

相关文章

Vue 组件的三大组成部分详解

文章目录 模板(template)脚本(script)样式(style)总结 在 Vue.js 中,组件是构建用户界面的重要基石。一个 Vue 组件通常由三个主要部分组成:模板(template)、…

C语言 | 第四章 | 常量 运算符-1

P 31 课后练习评讲 2022/8/24 一、题目 代码演示:第一题 #include<stdio.h>void main(){// 分析&#xff1a;使用不同的变量来保存对应的数据char name[10] "张三"; // 字符数组&#xff0c;存放字符串short age 23;float score 78.5f;char gender M; …

在IntelliJ IDEA中设置文件自动定位

当然&#xff0c;以下是一个整理成博客格式的内容&#xff0c;关于如何在IntelliJ IDEA中设置文件自动定位功能。 在IntelliJ IDEA中设置文件自动定位 背景 最近由于公司项目开发的需求&#xff0c;我从VSCode转到了IntelliJ IDEA。虽然IDEA提供了许多强大的功能&#xff0c;…

Kafka 面试题

参考&#xff1a; https://javabetter.cn/interview/kafka-40.htmlhttps://javaguide.cn/high-performance/message-queue/kafka-questions-01.html Kafka 架构 名词概念 Producer&#xff08;生产者&#xff09; : 产生消息的一方。 Consumer&#xff08;消费者&#xff09; …

Word:表格公式计算

一、求和公式 以下演示是在windows操作系统环境&#xff0c;office软件进行操作的 SUM(LEFT) 全部步骤图如下&#xff1a; 步骤一 光标置于单元格&#xff0c;依次单击【表格工具-布局】→【数据】→【公式】 步骤二 在【公式】一栏中&#xff0c;默认的是“SUM(LEFT)”求和…

二、kafka生产与消费全流程

一、使用java代码生产、消费消息 1、生产者 package com.allwe.client.simple;import lombok.extern.slf4j.Slf4j; import org.apache.kafka.clients.producer.KafkaProducer; import org.apache.kafka.clients.producer.ProducerConfig; import org.apache.kafka.clients.pr…

windows10使用bat脚本安装前后端环境之redis注册服务

首先需要搞清楚redis在本地是怎么安装配置、然后在根据如下步骤编写bat脚本&#xff1a; 思路 1.下载zip格式redis 2.查看windows server服务是否已安装redis 3.启动查看服务是否正常 bat脚本 echo off echo windows10 x64 server redis init REM 请求管理员权限并隐藏窗口 …

ip是可以从能够上网的设备提取吗

是的&#xff0c;IP地址可以从能够上网的设备提取。以下是如何从不同设备提取IP地址的具体方法&#xff1a; 在电脑上提取IP地址 Windows: 打开命令提示符&#xff08;按下 Win R&#xff0c;输入 cmd&#xff0c;按回车&#xff09;。 输入命令 ipconfig&#xff0c;按回车。…