vue2中vuex详细使用

news2024/9/28 7:17:16

1.安装

说明:@也就是版本号,一般vue2安装vuex3。

npm i vuex@3.6.2

2.搭建架子

执行流程如下:

  1. 初始化状态:在state对象中定义了一个名为message的属性,并将其初始值设置为"启动"。

  2. 定义变更函数(mutations):在mutations对象中定义了一个名为SET_MESSAGE的函数,该函数接受两个参数:statemessageSET_MESSAGE函数的作用是将state对象的message属性设置为传入的message值。

  3. 定义异步操作(actions):在actions对象中定义了一个名为setMessage的函数,该函数接受两个参数:commitmessagesetMessage函数的作用是调用commit方法并传入'SET_MESSAGE'作为第一个参数,以及传入的message作为第二个参数。这样,commit方法会将SET_MESSAGE函数应用于当前模块的状态。

2.1main.js

说明:导入store并注册在new Vue()里面。

import Vue from 'vue';

import 'element-ui/lib/theme-chalk/index.css';
import { install } from '@icon-park/vue/es/all';
import '@icon-park/vue/styles/index.css';
import ElementUI from 'element-ui';

import router from "./router/index.js"

import store  from "./store/index.js";

import App from './App.vue';
//全局引入echarts
// import * as echarts from 'echarts';

Vue.use(ElementUI);
Vue.use(install)
//导入api文件
import * as API from "@/api"

new Vue({
  el:"#app",
  router,
  store,
  beforeCreate() {
    // 挂载vue实例原型身上,一般自己添加的原型都以$命名
    Vue.prototype.$API = API;
    // Vue.prototype.$Echarts=echarts
  },
  render:(h)=>h(App),
}).$mount();

 2.2index.js

import Vue  from "vue";
import Vuex from "vuex"
import user from "./modules/user"
Vue.use(Vuex)

export default new Vuex.Store({
 modules:{
     user
 }
})

2.3user.js

说明:

  • actions里面的所有的方法,第一个参数其实就是一个小型的state,第二个参数其实就是前端页面通过dispath传递过来的值。下面是我通过解构的方法得到的commit方法,然后触发mutations里面的方法从而修改state里面的值。
  •  namespaced属性是命名空间的主要目的是避免状态和变更函数之间的命名冲突。当在一个大型应用程序中使用多个组件时,每个组件可能都有自己的状态和变更函数。如果没有命名空间,这些组件可能会使用相同的状态或变更函数名称,导致冲突和意外的行为。
// user.js
const state = {
    // 仓库
    message: "启动",
};
// 修改state数据
const mutations = {
    SET_MESSAGE(state, message) {
        state.message = message;
    },
};
//异步
const actions = {
    setMessage({ commit }, message) {
        commit('SET_MESSAGE', message);
    },
};

export default {
    namespaced: true,
    state,
    mutations,
    actions,
};

3.测试Demo 

说明:

  • $store 是 Vuex 实例的引用,它提供了访问整个应用程序状态的方法。(操作过于复杂)
  • mapState辅助函数通过映射的方法,它是一个函数,用法如下:
<template>
<div><div>vuex使用</div>
  <button @click="change1"> {{ good }}</button>
  <div>{{$store.state.user.message}}</div>
  <div>{{user}}</div>
</div>
</template>

<script>
import {mapActions, mapMutations, mapState} from "vuex"

export default {
  data(){
    return{
      good:"点击我修改数据"
    }

  },
  methods:{
    ...mapMutations({
      SET_MESSAGE:'user/SET_MESSAGE'
    }),
    ...mapActions({
      setMessage:"user/setMessage"
    }),
    change1(){
      // this.$store.dispatch("user/setMessage","传递数据来了")
      this.setMessage('数据来了')
    }

  },
  computed: {
    //对象的写法
    ...mapState({
      message: state => state.user.message, //里面的具体数据
      user:"user"  //整个user中的state数据,

    }),


  }
}
</script>

4.效果 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1363864.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【算法专题】FloodFill 算法

FloodFill 算法 1. 图像渲染 题目链接 -> Leetcode -773.图像渲染 Leetcode -773.图像渲染 题目&#xff1a;有一幅以 m x n 的二维整数数组表示的图画 image &#xff0c;其中 image[i][j] 表示该图画的像素值大小。 你也被给予三个整数 sr, sc 和 newColor 。你应该从…

jumpServer-02-安装与配置

jumpServer-02-安装与配置 文章目录 jumpServer-02-安装与配置一、什么是jumpServer&#xff1f;二、jumpServer安装配置①&#xff1a;初始化配置01&#xff1a;Linux服务器准备02&#xff1a;环境准备&#xff0c;关闭防火墙03: 配置yum源04&#xff1a;安装系统初始化所需的…

Python 入门练习

练习1&#xff1a;打印“hello world” print(hello world) 练习2&#xff1a;用户输入一个三位自然数&#xff0c;计算并输出其百位&#xff0c;十位和个位上的数字。 x input(请输入一个三位自然数&#xff1a;) print(*map(int,x)) 运行结果&#xff1a; 练习3&#x…

学习JavaEE的日子 day10 一维数组的深入,二维数组

day10 1.eclipse的使用 Eclipse是一款功能强大的集成开发环境&#xff08;IDE&#xff09;&#xff0c;主要用于开发Java应用程序。 1.项目&#xff08;Project&#xff09;&#xff1a;项目是为满足特定需求而创建的代码文件集合。一个工作区可以包含多个项目&#xff0c;而您…

超维空间M1无人机使用说明书——01、ROS机载电脑使用说明——远程连接

引言&#xff1a;远程连接通常采用两种方式&#xff0c;一种是通过可视化软件&#xff0c;如VNC、Nomachine等&#xff0c;另外一种是使用SSH。各有优缺点&#xff0c;两种远程登录方式的优缺点做一个简单的对比&#xff1a; 1、SSH优缺点 优点:1、消耗网络资源 2、运行稳定 …

基于SSM的网上购物平台设计与实现

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;采用JSP技术开发 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#x…

JavaScript常用事件演示

文章目录 一、在JavaScript中什么是事件&#xff1f;二、什么是JavaScript 常用事件&#xff1f;三、常用JS事件代码示例:四、事件总结 一、在JavaScript中什么是事件&#xff1f; JavaScript 使我们有能力创建动态页面。事件是可以被 JavaScript 侦测到的行为。 网页中的每个…

基于Vue开发的一个仿京东电商购物平台系统(附源码下载)

电商购物平台项目 项目完整源码下载 基于Vue开发的一个仿京东电商购物平台系统 Build Setup # csdn下载该项目源码压缩包 解压重命名为sangpinghui_project# 进入项目目录 cd sangpinghui_project# 安装依赖 npm install# 建议不要直接使用 cnpm 安装以来&#xff0c;会有各…

Python异常捕获和处理语句 try-except-else-finally

目录 try-except-else-finally语句 1. 基本用法 2. 多个异常处理 3. 处理所有其他异常 4. 多个except子句 5. 使用else子句 6. 使用finally子句 7. 使用as关键字 实例 例1 例2 例3 例4 例5 例6 例7 例8 结论 try-except-finally语句 在Python中&#xff0c;try-e…

基于差分进化算法优化的Elman神经网络数据预测 - 附代码

基于差分进化算法优化的Elman神经网络数据预测 - 附代码 文章目录 基于差分进化算法优化的Elman神经网络数据预测 - 附代码1.Elman 神经网络结构2.Elman 神经用络学习过程3.电力负荷预测概述3.1 模型建立 4.基于差分进化优化的Elman网络5.测试结果6.参考文献7.Matlab代码 摘要&…

基于Springboot的摄影跟拍预定管理系统(有报告)。Javaee项目,springboot项目。

演示视频&#xff1a; 基于Springboot的摄影跟拍预定管理系统&#xff08;有报告&#xff09;。Javaee项目&#xff0c;springboot项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三层体系…

前端框架中的状态管理(State Management)

聚沙成塔每天进步一点点 ⭐ 专栏简介 前端入门之旅&#xff1a;探索Web开发的奇妙世界 欢迎来到前端入门之旅&#xff01;感兴趣的可以订阅本专栏哦&#xff01;这个专栏是为那些对Web开发感兴趣、刚刚踏入前端领域的朋友们量身打造的。无论你是完全的新手还是有一些基础的开发…

Spring AOP—通知类型 和 切入点表达式 万字详解(通俗易懂)

目录 一、前言 二、AOP—快速入门 1.动态代理优化 : 2.问题分析 : 3.AOP—基本介绍 : 4.AOP—使用说明 : 5.AOP—入门案例 : 三、AOP—切入点表达式 1.基本说明 : 2.语法格式 : 3.注意事项 : 4.代码演示 : 四、AOP—切入点表达式的更多细节 1.JoinPoint : 1.1 简…

c语言-库函数qsort()初识

目录 前言一、qsort()的介绍及使用1.1 qsort()的介绍1.2 qsort()的使用1.2.1 使用qsort|()对整型数组按照升序排序1.2.2 使用qsort()对整型数组按照降序排序1.2.3 使用qsort()对结构体数组数据进行排序 二、利用冒泡排序模拟实现对任何数据进行排序2.1 冒泡排序2.2 模仿qsort()…

无锁队列 SPSC

无锁队列 SPSC Queuehttps://www.cnblogs.com/sinkinben/p/17949761/spsc-queue 在多线程编程中&#xff0c;一个著名的问题是生产者-消费者问题 (Producer Consumer Problem, PC Problem)。 对于这类问题&#xff0c;通过信号量加锁 (https://www.cnblogs.com/sinkinben/p/1…

06、Kafka ------ 各个功能的作用解释(ISR 同步副本、非同步副本、自动创建主题、修改主题、删除主题)

目录 CMAK 各个功能的作用解释★ ISR副本 (同步副本&#xff09;★ 非同步副本★ 自动创建主题★ 修改主题★ 删除主题 CMAK 各个功能的作用解释 ★ ISR副本 (同步副本&#xff09; 简单来说 &#xff0c;ISR 副本 就是 Kafka 认为与 领导者副本 同步的副本。 ISR&#xff0…

基于黄金正弦算法优化的Elman神经网络数据预测 - 附代码

基于黄金正弦算法优化的Elman神经网络数据预测 - 附代码 文章目录 基于黄金正弦算法优化的Elman神经网络数据预测 - 附代码1.Elman 神经网络结构2.Elman 神经用络学习过程3.电力负荷预测概述3.1 模型建立 4.基于黄金正弦优化的Elman网络5.测试结果6.参考文献7.Matlab代码 摘要&…

vue+nodejs微信小程序基于uniapp的学生宿舍打卡失物招领管理系统

基于微信的宿舍管理系统的设计基于现有的手机&#xff0c;可以实现等功能。方便用户对宿舍管理系统查看个人中心、失物招领管理、失物认领管理、晚归打卡管理、宿舍信息管理、宿舍更新管理、交流论坛、系统管理等功能模块的管理及详细的设计与统计分析。根据系统功能需求建立的…

JS手写apply,call,bind函数

本篇文章咱们来手写简易版的apply&#xff0c;call&#xff0c;bind函数。 实现思路 首先咱们需要思考下这三个函数放到哪里比较合适&#xff0c;因为这三个函数是被函数对象调用的&#xff0c;并且每个函数都可以调用&#xff0c;所以不难想到有一个位置非常合适&#xff0c;…

【每日论文阅读】生成模型篇

联邦多视图合成用于元宇宙 标题: Federated Multi-View Synthesizing for Metaverse 作者: Yiyu Guo; Zhijin Qin; Xiaoming Tao; Geoffrey Ye Li 摘要: 元宇宙有望提供沉浸式娱乐、教育和商务应用。然而&#xff0c;虚拟现实&#xff08;VR&#xff09;在无线网络上的传输是…