首页 > 其他分享 >组件之间的通信2-->vuex状态管理

组件之间的通信2-->vuex状态管理

时间:2022-11-13 19:46:03浏览次数:54  
标签:-- mutations actions state add 组件 vuex

在上期,我们讲了父子组件的传递方式,但是,如果我们想知道这些数据从哪里来的话,就需要一层一层找父组件,最后才能找到数据,容易造成Prop 逐级透传问题

今天,我们将介绍另一种组件通信方式,vuex状态管理

一句话介绍就是: vuex就是把公共资源放在一个地方,不同的组件可以去拿到这些资源

Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式 + 库

后期可能会使用到pinia

使用原理

与父子组件传递方式不同,vuex相当于把后台的数据拿到,放在一个新的组件里,有需要数据的组件到vuex这里来获取

1.state:把数据都放到这里来,公共状态

2.actions(事件):要执行的操作

3.mutations(执行):对数据执行完后,actions通过commit更新state数据源

4..getter(加工):返回一些数据

流程

1.通过dispatch去提交一个actions,

2.actions执行一些同步//异步的操作,根据情况分发给mutations,

3.actions通过commit去触发mutations,

4.mutations去更新state数据,state更新之后,就会通知vue进行渲染

使用步骤

1.下载vuex插件

2.配置index.js

3.在main.js中使用store对象

4.在vue中,通过this.$store访问stiore实例,也可以在计算属性中返回值

 

 使用vuex发送网络请求

例子:发送add事件操作网络数据

  <el-button link type="primary" size="small" @click="add(item.$index)">增加</el-button>import {mapActions } from 'vuex'

1.在根节点注入 store

import {mapActions, mapState,mapGetters } from 'vuex'

2.借助action,使用 mapActions 辅助函数将组件的 methods 映射为 store.dispatch 调用

    methods: {
        ...mapActions(["add", "del"])
    },

3.action通过context.commit触发mulatation

  //actions 用于响应组件中的事件
    add(context,index){
      context.commit('add',index)
    },  
  },

4.mulatations操作数据

  //mutations 用于操作数据
  mutations:{ 
    add(state,index){
      state.goodsData[index].num++;
    },
  },

 

标签:--,mutations,actions,state,add,组件,vuex
From: https://www.cnblogs.com/pilpill/p/16882836.html

相关文章

  • 编写程序练习直接、间接、相对、基址变址寻址
    直接寻址方式操作数在存储单元中,指令的操作码之后给出该存储单元的有效地址EA。指令中,EA可以是数值形式,也可以是符号地址形式;例如:MOVAX,[100H];  数值地址必须加方......
  • 38. data为什么是一个函数
    vue中的data为什么是返回对象的函数,而不是直接使用对象形式;我们复用组件的时候,要求每一份data数据之间是独立的,不能互相影响,如果写成对象的形式所有的组件使用一份data数......
  • 你在犹豫吗?--疫情换工作后记
    序最近两个月没有更新博客,是因为换工作了。当然不是经常看到的那种,公司经营不下去了,给赔偿走人,这种公司有,但是我没有碰到。里面缘由也不想细说,还好离职没有太多的曲折。......
  • 20221418 《计算机基础与程序设计》第十一周学习总结
    2022-2023-120221418《计算机基础与程序设计》第十一周学习总结作业信息这个作业属于哪个课程(2022-2023-1-计算机基础与程序设计)这个作业要求在哪里(2022-20......
  • 撰写Olly Debug(OD)的详细使用指南
    一、软件安装与基本功能介绍 1、软件安装流程及更改简单配置 首先我们需要下载一个od的安装压缩包,下载地址:我爱破解论坛然后我们将他解压到自己的的计算机 双击......
  • LeetCode(1)
    优美子数组将输入的数组逐个取模,得到一个新的数组,计算其前缀和数组子数组(i到j)中如果恰好有K个1,即和为K,那么这个数组就满足了题目要求,有K个奇数数字转化:sum[i]-sum......
  • Mp3文件标签信息读取和写入(Kotlin)
    原文:Mp3文件标签信息读取和写入(Kotlin)-Stars-One的杂货小窝最近准备抽空完善了自己的星之小说下载器(JavaFx应用),发现下载下来的mp3文件没有对应的标签也是了解可以......
  • Leetcode刷题第三周
    字符串:反转字符串344classSolution{publicvoidreverseString(char[]s){//左右指针intleftNode=0;intrifhtNode=s.lengt......
  • 自定义字符串排序 缀点成线 玩筹码 一周中的第几天 公交站间的距离
    791.自定义字符串排序StringBuilderans=newStringBuilder();int[]pre=newint[26];把目标字符串做成数组for(charch:s.toCharArray()){pre[ch-'a']++;}......
  • 每周总结
    本周学习内容这周学习了layui数据表格的使用,以及相关的分页方法,包括前台数据的获取,以及layui树形控件的使用。首先关于layui的数据表格的使用:获取数据......