Vue学习----第七天_Vuex(详细梳理)【6.13】

一、认识Vuex

1.Vuex是做什么的?

Vuex是实现组件全局转态(数据)管理的一种机制,可以方便的实现组件之间数据的共享
在这里插入图片描述

2.Vuex管理什么状态

在这里插入图片描述
一般情况下,只有组件之间共享的数据,才有必要存储到vuex中,对于组件中的私有数据,依旧存储在组件自身的data中即可

2.1.使用Vuex统一管理状态的好处

1. 能够在Vuex中集中管理共享的数据,易于开发和后期维护
2. 能够高效的实现组件之间的数据共享,提高开发效率
3. 存储在vuex中的数据都是响应式的,能够实时保持数据与页面的同步

3.单页面的状态管理

在这里插入图片描述

3.1.单页面的状态管理的实现

在这里插入图片描述

4.多界面状态管理

在这里插入图片描述

5.Vuex的状态管理图例

在这里插入图片描述

二、Vuex的基本使用

1.简单的案例

1.1.代码编写

在这里插入图片描述
store中index.js文件

import Vue from 'vue'
import Vuex from 'vuex'

// 1.安装插件
Vue.use(Vuex)

// 2.创建对象
const store = new Vuex.Store({
  state: {
  	counter:0
  },
  mutations: {
  	// 加一
  	increament(state) {
      state.counter++
    },
    // 减一
	decreament(state) {
	  state.counter--
	}
  },
  actions: {},
  getters: {},
  modules: {}
})
// 3.导出
export default store

App.vue文件:

<template>
  <div id="app">
    <h2>---------APP内容-------------</h2>
    <h2>{{$store.state.counter}}</h2>
    <button @click="addition">+</button>
    <button @click="subtraction">-</button>
  </div>
</template>

<script>
export default {
  name: 'App',
  methods: {
    addition() {
      this.$store.commit('increament')
    },
    subtraction() {
      this.$store.commit('decreament')
    }
  }
}
</script>

<style>
</style>

1.2.挂载在Vue实例中

在这里插入图片描述

1.3.小结

在这里插入图片描述

三、Vuex核心概念

1.State

State提供唯一的公共数据源,所有共享的数据都要统一放到Store的State中存储

1.1.组件访问state数据

1.1.1.组件访问state数据方式一:$store.state.数据名称

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

1.1.2.组件访问state数据方式二:
在组件中映射为计算属性

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

1.2.state单一状态树

在这里插入图片描述

2.Getters

Getter用于对store中的数据进行加工处理形成新的数据,不会处理store里的原数据。
①.Getter可以对store中已有的数据加工处理之后形成新的数据,类似vue的计算属性
②.store中该数据发生变化,getter的数据也会跟着变化

2.1.使用getters的两种方式

在这里插入图片描述

2.2.getters基本使用

在这里插入图片描述

2.3.getters作为参数和传递参数

在这里插入图片描述

3.Mutation

Mutation用于变更Store中的数据:
①.只能通过mutation变更Store中的数据,不可以直接操作store中的数据
②.通过这种方式虽然操作起来繁琐一些,但是可以集中监控所有的数据的变化

3.1.触发mutations两种方式及传递参数:

3.1.1.方式一:this.$store.commit('mutation中函数名称')

在这里插入图片描述
在这里插入图片描述
传递参数:
在这里插入图片描述
在这里插入图片描述

3.1.2.方式二:

在组件的methods中
在这里插入图片描述
在这里插入图片描述

3.2.mutation提交风格

在这里插入图片描述

3.3.mutation响应规则

Vue.set添加属性、Vue.delete删除属性。都是响应式

在这里插入图片描述

3.4.mutation中常量类型

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

3.5.mutation同步函数

可以从网上下载一个谷歌Devtools插件,更好的观察调试vue
在这里插入图片描述

4.Action

action用于异步任务。
如果通过异步操作变更数据,必须通过action,而不能使用Mutation,
但是在Action中还是要通过触发Mutation的方式间接变更数据

4.1.触发actions方式

4.1.1.方式1:

在这里插入图片描述

4.1.2.方式一传参:

在这里插入图片描述

4.1.3.方式2:

在这里插入图片描述

4.2 .Action基本定义

在这里插入图片描述

4.3 .Action分发

在这里插入图片描述

4.4.Action返回的Promise

在这里插入图片描述

5.Module

5.1.认识module

在这里插入图片描述

5.2.mutation局部状态

在这里插入图片描述

5.3.mutation中action写法

在这里插入图片描述

四、项目结构组织

1.项目结构

在这里插入图片描述
例如:
在这里插入图片描述

内容持续更新中…
学习自:b站ilovecoding
lvan学习笔记-文章内容仅个人观点
2020.6.13

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值