Vuex笔记

Vuex是什么呢?


Vuex笔记_第1张图片
官方解释

通俗的说法呢就是:

       是一种设计思想,是把所有组件所有状态统一放在一个state空间管理,state里面的数据方便渲染到组件,当组件的数据发生变化时,通过dispatch一个action,然后action会做一些异步操作,与后端的一些交互,之后commit一个mutation(唯一一个修改state的途径),这样就是实现一个state状态修改可以预测,state修改又会映射到组件上,形成一个闭环。


Vuex笔记_第2张图片

官网流程解释图

何时使用Vuex合理呢?

       在一些简单的单页面应用时,没必要使用Vuex,这样反而更复杂。在复杂的中大型应用中:

       1、多个组件之间的数据共享

       2、传递的数据比较复杂时


如何使用呢?

      一般的文件设置,在src文件下设置几个js文件,并配置Vuex插件(npm install vuex --save)


Vuex笔记_第3张图片
文件目录

在vuex文件夹里:

     index.js是入口文件(main.js中引入)

     state.js是状态

     mutation.js是mutation方法

     mutation-type.js是存储一些mutation相关的字符串常量

     actions.js异步操作或者是mutation做一些封装

     getters.js会对一些state做一些映射

每个文件具体实现:

Vuex笔记_第4张图片
state文件


matution-types文件定义常量


Vuex笔记_第5张图片
mutation文件就可以拿到matution-types中的常量


Vuex笔记_第6张图片
getters文件做数据映射

action文件

     >使用场景

            1、异步操作

            2、mutation封装

                  在某个动作触发时需要操作多个mutation时,将多个mutation进行封装

Vuex笔记_第7张图片
action文件


Vuex笔记_第8张图片
index文件


store初始化,注入到项目中


Vuex笔记_第9张图片
store初始化,注入到项目中

真实需求时(举例):

    》在需要使用的组件中引入Vuex的语法糖(写)


然后在method最后编写:


再使用到方法中:


》在使用的组件中引入Vuex的语法糖(用)


Vuex笔记_第10张图片

然后在方法中使用this.singer使用数据即可

》使用action.js文件后,可以在使用的组件中引入Vuex的语法糖


Vuex笔记_第11张图片
a

一般的操作顺序:

     1、先修改state.js文件,一般都是底层数据

     2、再修改getters.js文件,完成底层数据的映射到组件,里面都是函数,计算属性,也可以有很复杂的判断逻辑

    3、再有了数据之后,就需要对数据进行修改,需要mutation.js文件,定义一些修改数据的逻辑

    4、mutation-type.js,定义成字符串常量,一般以 动词-状态

    5、当页面一个操作需要操作多个mutation方法时,使用action.js文件

》mapActions中的方法调用之后就会使得mutation中的值改变,就会使映射改变,就可以使得mapGetters中的值改变,就实现页面的值改变

你可能感兴趣的:(Vuex笔记)