Vuex入门

作者: 西兰花伟大炮 | 来源:发表于2018-01-19 14:55 被阅读127次
(1)简单的页面中使用单向数据流
image.png
(2)vuex的流程图
image.png
(3)store

由于 store 中的状态是响应式的,在组件中调用 store 中的状态简单到仅需要在计算属性中返回即可。触发变化也仅仅是在组件的 methods 中提交 mutation


为什么需要使用vuex?

  • 多个视图依赖于同一状态。
  • 来自不同视图的行为需要变更同一状态
(4)还是从一个计数器开始

在vuecli里面使用vuex还是讲究一点规矩的

  1. 进行包的安装 cnpm i vuex --save
  2. 在src下新建一个store文件夹,store下新建一个index.js
    3.每当使用插件,一定要记得引入,并使用Vue.use()

image.png
image.png

方法中传入state参数就不再需要this

  1. 创建好store仓库以后就需要组件来调用状态,更新状态,之前还应该有一个步骤将这个store仓库注册到全局,通过this.$store来进行全局调用


    image.png


  1. 接下来就可以再全局进行使用,组件直接去调用,使用store里面的数据最好通过计算属性来渲染,更新还是通过methods,但是不是直接去操作state,而是通过mutations


    image.png

(5)getters

对state里面的数据进行过滤封装处理,然后在计算属性里面还是通过this.$store.getters.methodName进行调用(可以认为是 store 的计算属性),就像计算属性一样,getter 的返回值会根据它的依赖被缓存起来,且只有当它的依赖值发生了改变才会被重新计算


Getter 也可以接受其他 getter 作为第二个参数


在上一个Demo中进行增加


image.png
image.png

晦涩难懂


image.png

getters必须写在组件的计算属性里面,页面展示可以直接调,但是在方法里面调用需要加上this

(6)mutations

唯一的更新state数据的方法,在组件中commit的时候类似JQ的trigger方法
如果要使用 ...mapMutations([ ])辅助方法并在页面创建时调用以获取数据必须写在methods里面,然后去created里面调用mapmutation里面的方法

(7)Action
image.png

虽然还没深刻领悟到为什么要在mutation上再加一层,但是怎么用还是要明白的,现在唯一知道的就是可以组件向action传参(mutation也可以传参,主要差别还是一个是同步,一个是异步)


自然还是先创建action,通过提交mutation里面的方法来传递参数


image.png

在组件里面又是如何来处理呢?既然对象都变了,方法肯定也变了,使用

this.$store.dispatch("actionName", param)来分发


image.png
  1. ES6的写法

image.png
(8)

使用 Vuex 并不意味着你需要将所有的状态放入 Vuex。虽然将所有的状态放到 Vuex 会使状态变化更显式和易调试,但也会使代码变得冗长和不直观。如果有些状态严格属于单个组件,最好还是作为组件的局部状态

(9)坑爹的getters

要想获取state里面的数据,必须通过计算属性来返回,另外不能直接通过
this.$store.state.data来获取数据

(10)
image.png
(11)开启严格模式
image.png
(12)总结一下

我发现人啊就是容易忘记,我有几次都能记得getters, mutations, actions,就是不记得用什么来触发了,或者记不起那两个单词了

  • commit --> mutations(同步)
  • dispatch --> actions(异步)
(13)关于vuex的使用

使用vuex开发管理系统,开始是头非常晕的,状态总是易变的,还相互影响,后面想明白了,不是什么地方都需要状态管理的,除了登录的用户信息以及Token的处理,其他地方还是正常的去用axios拉取数据渲染,直接与后台交互,没必要使用vuex,就是用来保存登录状态,结合本地存储

相关文章

  • 后台管理(4)--- vuex的实际使用(vue)

    今天我们来讨论一下在项目中到底应该怎么使用vuex(vuex还没有入门的同学可以先看这个链接vuex 入门及持久化...

  • 轻松上手Vue - 简化Vuex

    PS: Vuex 对于很多初入门Vue的来说,入门困难,感觉非常绕。 Vuex 是一个专为 Vue.js 应用程...

  • vuex入门详解

    vuex最简单、最详细的入门文档 vuex最简单、最详细的入门文档 如果你在使用 vue.js , 那么我想你可能...

  • vuex入门

    vuex最简单、最详细的入门文档

  • 2020-03-25 vuex 全集

    Vuex入门(1)—— Vuex的设计初衷和简单使用 https://blog.csdn.net/dkr38020...

  • vuex入门

    1.入门使用 (1)引入vuex (2)新建src/vuex文件夹,在vuex中新建store.js文件。文件中引...

  • vuex入门

    Vuex是什么 Vuex是一个专为Vue.js应用程序开发的 状态管理模式 。它采用集中式存储管理应用的所有组件的...

  • Vuex 入门

    Vuex 是什么? 官方给出的解释:Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。它采用集中式存...

  • vuex入门

    npm install vuex--save 安装(install 后package.json里的dependen...

  • vuex入门

    Vuex 是什么? Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。它采用集中式存储管理应用的所有...

网友评论

    本文标题:Vuex入门

    本文链接:https://www.haomeiwen.com/subject/rfbooxtx.html