入坑前端12:抽象的Vuex

一.如果你的项目中,需要用到在各个子组件中共享数据,则你就需要用到Vue.x

state:{},状态,把需要在多个组件之间共享的数据,可以理解为Vue实列中的data
mutations:{}要修改state中的数据,你只能通过mutation中的方法

使用:一旦你在vue实列中注入了store,则在所有的子组件及vue实列中,你都可以通过 this.$store.state.数据名,去修改数据,但是vuex反对这么做,因为这种方式修改数据,不会再vuex调试面板留下记录。

image.png

Mutations你可以理解它的每个属性名:表示一个事件名。它的每个属性值:表示当这个事件发生之后要调用的函数。

image.png

调用mutations

格式:this.$store.commit(“mutations中的属性名”)

注意思想:在组件内部去提交(commit) mutations


image.png

二:Vuex的四个概念

Getters:从state中的数据,取出一部分来,依据数据项产生新的结果,类似于Vue实列中的computed(计算属性)
Actions:在对数据实现异步操作时,要用的

拿数据:
方法一 :this.$store.state.amount

image.png

方法二:用计算属性computed来获取数据


image.png

方法三:直接用mapState来获取数据

image.png

mapState是一个函数,这里就是调用这个函数,实参是一个数组[“amount”]它的返回值是一个对象。

image.png

Getters

有时候希望在state中数据基础上,派生出一些其他的数据,例如:我们想知道有多少人的分数小于60分。这里就要用到getters

1.在vuex中定义getters


image.png

2.拿数据


image.png

这种写法太长了,不好看。所以用mapGetters,简化代码


image.png

Mutations:修改数据

1.比如说我们要向list里边加一条数据


在组件中使用

2.
image.png

3.效果
image.png

这样写还是比较麻烦,所以用mapMutations,但是用mapMutations时候注意
image.png
image.png

Actions

在mutations中,操作是异步的。

image.png

image.png

所以这个会跟我们跟踪代码带来影响,所以我们要把异步操作写在actions中。

1.操作actions:


image.png

2.在组件中使用actions


image.png

3.简写


image.png
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 安装 npm npm install vuex --save 在一个模块化的打包系统中,您必须显式地通过Vue.u...
    萧玄辞阅读 2,972评论 0 7
  • vuex 场景重现:一个用户在注册页面注册了手机号码,跳转到登录页面也想拿到这个手机号码,你可以通过vue的组件化...
    sunny519111阅读 8,051评论 4 111
  • Vuex是什么? Vuex 是一个专为 Vue.js应用程序开发的状态管理模式。它采用集中式存储管理应用的所有组件...
    萧玄辞阅读 3,166评论 0 6
  • 目录 - 1.什么是vuex? - 2.为什么要使用Vuex? - 3.vuex的核心概念?||如何在组件中去使用...
    我跟你蒋阅读 4,132评论 4 51
  • 姓名:岳沁 学号:17101223458 转载自:http://blog.csdn.net/h5_queensty...
    丘之心阅读 2,164评论 0 1