06-快速上手Vuex

这是我学习vue的整理笔记。是我对各个视频和文档的综合理解,以备我日后复习存储。如果有错误的地方,还请各位大佬多多赐教。

一、基本概念

1.1、什么是Vuex?

        Vuex是一个专为 Vue.js 应用程序开发的状态管理模式核心就是 store,采用集中式存储管理应用的所有组件的状态。store中文的意思是仓库,其可以简单的理解为一个公共仓库,所有的组件都可以直接向仓库拿取变量,这个变量是大家所共有共享的。其原理如下:
在这里插入图片描述

1.2、何时使用Vuex?

        Vuex可以简单的认为是一个公共的仓库,存取变量非常方便,但不是什么时候都要用它去存储

       举个例子:就好比一个东西全城市的人都要用,那么我们可以把它放入公共仓库。如果我们自己家里要用的东西也放入到公共仓库,那么仓库的管理和维护将会非常复杂。

       所以当父子组件之间的数据的传递,我们采用组件之间自带的方法去传递。 但是很多组件都要用或者组件之间的关系比较复杂(子组件和太太太爷爷共享数据)的时候,我们把数据放入到公共仓库中

1.3、vue-Devtools插件的安装

vue-Devtools插件可以监听store的缓存的变化,以及相关组件

免费插件下载点击,下载了压缩包后我们需要对其进行解压缩,安装使用步骤如下
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

二、VueX安装以及基本使用

2.1、安装

       打开项目所在终端或者cmd输入npm install vuex --save

在这里插入图片描述

2.2、基本使用

步骤如下:

  1. 导入插件并安装
  2. 创建对象
  3. 导出store独享
  4. 来到main.js中导入

在这里插入图片描述

三、VueX核心技术

3.1、State

3.1.1、基本使用

        State中文为状态的意思,也就是我们所用共享的变量的状态,即我们共享变量的仓库

        State采用单一状态树,英文名称是Single Source of Truth,也可以翻译成单一数据源。通俗的来说,就是我们一个项目有且只能有一个Vue.store对象。单一状态树能够让我们最直接的方式找到某个状态的片段,而且在之后的维护和调试过程中,也可以非常方便的管理和维护。

使用案例如下
可以把state看成对象,我们要存储的变量就是它的属性

在这里插入图片描述

在这里插入图片描述

3.1.2、使用 mapState 简写

在这里插入图片描述

3.2、Getters

        Getters可以简单理解为与computer一样的计算属性,他的本质也是通过get函数来调用数据的。

3.2.1、简单的处理state数据

getters中的函数有2个参数

  • 第一个参数:state就是Vuex.stroe中的state共享仓库
  • 第二个参数:getters将其自身作为参数传递

使用案例如下

通过this.$store.getters.方法来获取

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

3.2.2、Getters作为参数和传递参数

        getters默认是不能传递参数的, 如果希望传递参数, 那么只能让getters本身返回另一个函数,并执行函数。

在这里插入图片描述在这里插入图片描述

3.2.3、使用 mapGetters 简写

在这里插入图片描述

3.3、Mutations

3.3.1、Mutations的作用

在这里插入图片描述
        所以我们需要Mutations来帮助我们观察数据的变化。Vuex的store状态的更新唯一方式:提交Mutation
在这里插入图片描述

3.3.2、Mutations基本使用

Mutation主要包括两部分

  • 字符串的事件类型(type)
  • 一个回调函数(handler),回调函数包含2个参数,参数含义如下

        1、第一个参数:`state``就是Vuex.stroe中的state共享仓库

        2、 第二个参数:Payload是mutation的载荷,即更新数据时携带的额外参数

在这里插入图片描述
注意:此时我们提交数据是以 this.$store.commit("事件类型", 额外参数(可选))的形式来提交的,如下
在这里插入图片描述

3.3.3、Mutations响应规则

Mutations并不是对所有的操作都是响应的,必须符合以下条件,才能响应:

  1. 对于提前在store中初始化好state属性,我们对其值修改的时候,可以直接通过其属性值修改
  2. 对于未在store中初始化好state属性,即给state中的对象添加新属性时, 使用Vue.set(obj, 'newProp', 123)或者用新对象给旧对象重新赋值

ps:如果我们添加的对象属性时数组类型时,我们还可以利用数组的一些方法进行添加修改,比如 push()pop()shift()unshift()splice()sort()reverse()
在这里插入图片描述

3.4、Actions

注意:即使是异步请求的数据,我们依然要经过Mutations,不能直接传给state

在这里插入图片描述
Actions主要包括两部分

  • 字符串的事件类型(type)
  • 一个回调函数(handler),回调函数包含2个参数,参数含义如下

        1、第一个参数:content代表上下文
        2、 第二个参数:Payload是mutation的载荷,即更新数据时携带的额外参数

在这里插入图片描述

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值