史上最全的vuex教程(代码片段)

我想月薪过万 我想月薪过万     2022-12-28     786

关键词:

目录

Vuex介绍

诞生之前组件间的传值

 诞生之后组件间的传值

 Vuex全局数据管理的好处

适用地方

Vuex的安装步骤

方法一(创建项目时勾选Vuex)

方法二(创建项目时未勾选Vuex)

Vuex的核心概念

Vuex的使用方法

state的调用方法

方法一(直接法)

方法二(映射法)

mutations的调用方法

方法一(直接法)

方法二(映射法)

actions的调用方法

方法一(直接法)

方法二(映射法)

getters的调用方法

方法一(直接法)

方法二(映射法)

modules使用方法

官方文档:Module | Vuex (vuejs.org)

核心语法介绍:


Vuex介绍

诞生之前组件间的传值

 诞生之后组件间的传值

 Vuex全局数据管理的好处

适用地方

Vuex的安装步骤

方法一(创建项目时勾选Vuex)

在你创建Vue项目的 时候勾选 Vuex就自带Vuex相关配置文件了,置于如何操作配置文件,合在方法二中一起写。

方法二(创建项目时未勾选Vuex)

1、安装Vuex依赖包

npm i vuex

 2、导入Vuex包

import Vuex from 'Vuex'
Vue.use(Vuex) //千万不能忘记

3、创建store对象

const store = new Vuex.Store(
      ...
)

4、将store对象挂载到Vue实例中

new Vue(
   //将创建的共享数据对象,挂载到Vue实例中
   //所有的组件,就可以直接从store中获取全局的数据了
   store
)

Vuex的核心概念

state:全局数据存储的地方,相当于data

mutations:编写操作state的方法的地方,同时还只能存放同步操作,异步操作得放到actions

actions:编写异步操作的地方,但是对state的操作还是得调用 mutations 中的方法

getters:装饰state中的数据,但是不改变state中的数据,相当于computed

modules:Vuex模块化开发

Vuex的使用方法

state的调用方法

方法一(直接法)

this.$store.state.全局数据名称
注意:在中this可以省略

方法二(映射法)

//1、从Vuex中按需导入mapState函数
import  mapState  from 'Vuex'
//2、将全局数据映射为当前组件的computed属性上
computed:
    ...mapState(['全局数据名称','全局数据名称','全局数据名称'])
    // ...代表展开运算符,不要忘记了

mutations的调用方法

方法一(直接法)

this.$store.commit('mutations中定义的方法名',arg)

//注意:参数二arg不是必须的 ,
//如果你传了arg,那么在 mutations中就要做相应的接收

mutations:
     方法名(state,arg)
     
          

方法二(映射法)

1、从vuex中按需导入mapMutations函数

import  mapMutations  from 'Vuex'

2、将指定的mutations函数,映射为当前组件的methods函数

methods:
    ...mapMutations(['方法名'])


3、调用

this.方法名(arg)

注意:arg不是必须,同方法一解释一样

注意:不要在mutations中写异步方法

actions的调用方法

方法一(直接法)

this.$store.dispatch('方法名',arg)

//注意:参数二arg不是必须的 ,
//如果你传了arg,那么在 actions中就要做相应的接收

actions:
     // context 就相当于 这个 store 实例对象 
     方法名(context,arg)

          //actions也不能直接对state数据进行修改,所以得调用mutations中的方法
          context.commit('方法名',arg)

          

方法二(映射法)

1、从vuex中按需导入 mapActions 函数

import  mapActions  from 'Vuex'

2、将指定的actions函数,映射为当前组件的methods函数

methods:
    ...mapActions(['方法名'])


3、调用

this.方法名(arg)

注意:arg不是必须,同方法一解释一样

注意:actions里面是做异步操作的,但是不能直接对state数据进行修改

getters的调用方法

方法一(直接法)

this.$store.getters.数据名称
注意:在中this可以省略

方法二(映射法)

//1、从Vuex中按需导入mapGetters函数
import  mapGetters  from 'Vuex'
//2、将全局数据映射为当前组件的computed属性上
computed:
    ...mapGetters(['数据名称','数据名称','数据名称'])
    // ...代表展开运算符,不要忘记了

modules使用方法

官方文档:Module | Vuex (vuejs.org)

核心语法介绍:

在store.js中,实例化store对象的时候,加一个 modules属性,如下:

const moduleA = 
  namespaced: true, //默认情况下,模块内部的 action、mutation 和 getter 是注册在全局命名空间的——这样使得多个模块能够对同一 mutation 或 action 作出响应。目的就是解决歧义
  state: () => ( ... ),
  mutations:  ... ,
  actions:  ... ,
  getters:  ... 


const moduleB = 
  namespaced: true,
  state: () => ( ... ),
  mutations:  ... ,
  actions:  ... 


const store = new Vuex.Store(
  modules: 
    a: moduleA,
    b: moduleB
  
)

store.state.a // -> moduleA 的状态
store.state.b // -> moduleB 的状态

调用的时候就得加上命名空间

例如 moduleA下的state

this.$store.state.moduleA.全局数据名称

还有别的语法,大家可以自己查看官方文档 

视频连接:史上最简单的Vuex使用方法_哔哩哔哩_bilibili

史上最全面的docker构建工具教程(代码片段)

Docker是一个开源的应用容器引擎,基于Go语言]并遵从Apache2.0协议开源。Docker可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化。Docker使用客户端-服务... 查看详情

githubpages+hexo搭建个人博客网站,史上最全教程(代码片段)

文章目录一、准备工作1.GitHub账号2.安装Git3.安装NodeJS二、创建仓库三、安装Hexo四、更换主题1.NexT主题2.Fluid主题五、创建文章六、个性化页面展示1.浏览器tab页名称2.博客标题3.主页正中间的文字七、添加阅读量统计1.申请LeanCloud... 查看详情

史上最全的opencv入门教程!这篇够你学习半个月了!万字长文入门(代码片段)

一、PythonOpenCV入门欢迎阅读系列教程,内容涵盖OpenCV,它是一个图像和视频处理库,包含C++,C,Python和Java的绑定。OpenCV用于各种图像和视频分析,如面部识别和检测,车牌阅读,照片编辑,高级机器人视觉,光学字符识别等等... 查看详情

android之一篇史上最适合最全面的jni入门教程(代码片段)

前言:  一定要下载demo,动手动脑,结合本篇博客来跑demo,否则看了也还是不会;写代码还是要勤动手才能掌握,否则里边的坑也只是想当然demoNDK的基础知识,强烈推荐小楠总的NDK系列博客,先... 查看详情

史上最全springcloudalibaba入门教程,从零开始带你深入♂学习——环境搭建(代码片段)

SpringCloudAlibaba(一)——环境搭建SpringCloudAlibaba简介springcloudspring团队开源微服务工具集,帮助我们快速构建分布式系统(微服务系统),提供spring组织netflixspringcloudalibabaalibaba团队开源微服务工具集,... 查看详情

史上最全mybatis框架入门教程,从零开始带你深入♂学习——mybatis入门(代码片段)

Mybatis框架(一)mybatis入门mybatis的使用mybatis中文文档:https://mybatis.org/mybatis-3/zh/index.html如果使用Maven来构建项目,则需将下面的依赖代码置于pom.xml文件中:<dependency><groupId>org.mybatis</groupI 查看详情

史上最全springcloudalibaba入门教程,从零开始带你深入♂学习——nacos组件:环境配置(代码片段)

SpringCloudAlibaba(二)——Nacos组件:环境配置Nacos组件简介Nacos致力于帮助您发现、配置和管理微服务。Nacos提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理Nacos就是微服... 查看详情

史上最全的mavenpom.xml文件教程详解

原文地址:http://blog.csdn.net/yaerfeng/article/details/26448417原创整理不易,转载请注明出处:史上最全的mavenpom.xml文件教程详解代码下载地址:http://www.zuidaima.com/share/1781583829978112.htm<project xmlns& 查看详情

bytebuddy(史上最全)(代码片段)

ByteBuddy(史上最全)文章很长,建议收藏起来慢慢读!总目录博客园版为大家准备了更多的好文章!!!!推荐:尼恩Java面试宝典(持续更新+史上最全+面试必备)具体详情,... 查看详情

bytebuddy(史上最全)(代码片段)

ByteBuddy(史上最全)文章很长,建议收藏起来慢慢读!总目录博客园版为大家准备了更多的好文章!!!!推荐:尼恩Java面试宝典(持续更新+史上最全+面试必备)具体详情,... 查看详情

史上最全idea插件开发入门实战(傻瓜式教程)(代码片段)

idea插件开发入门实战文章目录idea插件开发入门实战前言一、书写第一个HelloWorld二、IDEA插件开发进阶1.基于java文件的规则校验2.基于XML文件规则的校验3.基于java文件的代码自动生成方法4.基于XML文件的读写方法5.XML跳转Java文件前... 查看详情

史上最全的latex特殊符号语法(代码片段)

运算符语法效果语法效果语法效果+++-−−\\triangleleft◃◃\\pm±±\\div÷÷\\triangleright▹▹\\times××\\setminus∖∖\\star⋆⋆\\cdot⋅⋅\\cap∩∩\\ast∗∗\\cup∪∪\\sqcup⊔⊔\\circ∘∘\\vee∨∨\\sqcap⊓⊓\\bullet∙∙\\wedge∧∧\\oplus⊕⊕\\ 查看详情

史上最全的反转链表(代码片段)

史上最全的反转链表!!!**震惊!!!**一个小小的反转链表,竟然有好几种方法,还要看好几篇文章,更要命的是观看需要money!!!!哎,气不过,我就给你整合到一... 查看详情

史上最全的springboot学习教程!会不断更新

史上最全的SpringBoot学习教程!会不断更新https://www.cnblogs.com/qiantao/p/14605154.html  查看详情

androidmaterialdesign史上最全的材料设计控件大全(代码片段)

主要内容:本文将要介绍Materialdesign和Supportlibrary控件,主要包括TextInputLayout、SwitchCompat、SnackBar、FloatingActionButton、Shadows、Ripples、TabLayout、RecyclerView、Card、NavigationView、BottomSheet、Palette控件 查看详情

全网最全linux命令总结!!(史上最全,建议收藏)(代码片段)

...己和他人持续有所收获。今天,给小伙伴们带来一篇史上最全Linux命令总结的文章,命令有点多,建议小伙伴 查看详情

全网最全linux命令总结!!(史上最全,建议收藏)(代码片段)

...己和他人持续有所收获。今天,给小伙伴们带来一篇史上最全Linux命令总结的文章,命令有点多,建议小伙伴 查看详情

python知识点(史上最全)(代码片段)

Python期末考试知识点(史上最全)python简介Python是一种解释型语言Python使用缩进对齐组织代码执行,所以没有缩进的代码,都会在载入时自动执行数据类型:整形int无限大浮点型float小数复数complex由实数和虚... 查看详情