vuex就是vue中管理状态的地方,控制着组件之间的数据;

5大核心,通常只要有state和mutation就能满足vuex最基本的需求

1.state 项目存放各种状态的地方

2.mutation 修改数据的方法,修改简单同步数据

3.Action 类似mutation,不同是用commit提交mutations方法,让mutation改变state数据,也就是间接的改变state数据

那为什么有了mutation,也还有action,存在即正义

将多个mutation方法,封装在一起调用,action的内部可以异步执行代码,而muatation中不可以

4.getter 数据监听地方,一旦改变数据,就会触发,就相当于vuex中的计算属性,类似vue中computed计算属性

5.module 可以在new Vuex.Store()里面使用,引用多个存放数据组件

总结:state和getter都可以获取全局存放状态,但是getter也是基于state的获取,getter用于重新包装state数据的地方,语法糖的使用,也很相近

    mutation和action都是用来存放修改state的方法,action是将mutation方法封装在一起调用,语法糖的使用也极为相近

state基本用法:

调用方法1:适用于简单的项目里面,

在computed中调用,通过this.$store.state来获取值

调用方法2:vuex已经封装好的语法糖,简单高效mapState

,引入语法糖

语法糖的使用方法

mutation基本用法:

调用方法1:适用于简单的项目,通过commit提交方法,来设置

调用方法2:语法糖mapMutations

也可以...mapMutations(['setNum',''addNum'])这样调用,不重新改名,直接调用就行

action基本用法 :默认接受一个commit来提交事件

例:delaySetNum函数在2秒后调用mutation中的setNum方法

调用方法1:通过dispatch调用action里面的函数

调用方法2:语法糖mapActions

 mutations和actions的区别:

都可以处理异步,但是mutations不能返回异步处理结果

所以:如果异步处理的结果,外面不需要,就无所谓用mutations或者actions

        但是,如果外面需要异步处理的结果,就要用actions;

组件中接收返回值:

getter基本用法:默认接受一个参数state,就是vuex中的state,重新计算属性

调用方法1:也是在computed中调用

调用方法2:使用语法糖mapGetters

module模块化:

当应用非常复杂时,如果在使用单一的store,会造成引用相当的复杂,

将store模块化,每一个模块又拥有自己的state,getter,mutation,action

简单引入两个模块

获取不同模块状态state还是很方便

 

但是getter,mutation,action就不可以,因为时全局注册,要想也在自己的模块中使用,就要设置namespaced: true,使其成为带命名的空间模块

开启之后调用方法就会自动加入一个模块命名

例:1个调用a模块的setNum方法,另外一个调用b模块的setNum方法

小技巧:

当mutation中方法名字过多,可以使用常量,将名字放在一个文件夹中,一目了然;

严格模式,确保属性是通过mutation修改,不然会报错,仅仅是在开发模式下

vuex记录的更多相关文章

  1. Vue2.X的状态管理vuex记录

    记住上述的顺序情况:想要改变state,只能通过Mutation,虽然action可以直接改变state,这样会使每个状态可以方便的跟踪和记录(用Devtools跟踪) vue Method   -- ...

  2. vue后台_实战篇

    一.一些常用组件效果的实现 1)面包屑导航 主要是使用$route.mathed:一个数组,包含当前路由的所有嵌套路径片段的路由记录 .路由记录就是 routes 配置数组中的对象副本 (还有在 ch ...

  3. vue学习记录:vue引入,validator验证,数据信息,vuex数据共享

    最近在学习vue,关于学习过程中所遇到的问题进行记录,包含vue引入,validator验证,数据信息,vuex数据共享,传值问题记录 1.vue 引入vue vue的大致形式如下: <temp ...

  4. vue、vuex、iview、vue-router报错集锦与爬坑记录

    1.vue报错: 没安装 less-loader css-loader style-loader      可能的很大原因:没安装less 2.vuex报错:Computed property &qu ...

  5. vuex填坑记录

    vuex是需要等待页面加载完成后才会更新的,如果页面点击刷新有用到vuex的地方,那么vuex会保持旧的数据,等刷新完成后vuex的数据才会重置,所以要在页面加载后再调用vuex的数据才是正确的,如果 ...

  6. [20190620]日常学习记录(三)-初识promise及vuex

    在学习promise之前重温了Ajax的原生js实现, 在原生js中发送一个http请求首先new XMLHttpRequest() 然后定义状态变更事件 浏览器监听请求的状态,触发不同状态下相应的代 ...

  7. 踩坑记录-nuxt引入vuex报错store/index.js should export a method that returns a Vuex instance.

    错误 store/index.js代码如下: import Vue from 'vue'; import Vuex from 'vuex'; import city from './moudle/ci ...

  8. vuex的小疑问记录

    actions和mutations的区别是Action提交的是Mutation,不能够直接修改state中的状态,而Mutations是可以直接修改state中状态的:Action是支持异步操作的,而 ...

  9. 关于Vue.js 2.0 的 Vuex 2.0,你需要更新的知识库

    应用结构 实际上,Vuex 在怎么组织你的代码结构上面没有任何限制,相反,它强制规定了一系列高级的原则: 应用级的状态集中放在 store 中. 改变状态的唯一方式是提交mutations,这是个同步 ...

  10. 饿了么基于Vue2.0的通用组件开发之路(分享会记录)

    Element:一套通用组件库的开发之路 Element 是由饿了么UED设计.饿了么大前端开发的一套基于 Vue 2.0 的桌面端组件库.今天我们要分享的就是开发 Element 的一些心得. 官网 ...

随机推荐

  1. Linux服务器监控性能测试

    1.进程与线程的定义与区别 进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,是系统进行资源分配和调度的一个独立单位[例如电脑上的不同程序] 线程是进程的一个实体,是cpu调度和分派的基本 ...

  2. python 自动化 代码操作数据库

    import pymysql from pymysql import connect con=pymysql.connect(host='localhost',port=3306,database=' ...

  3. 1970:【15NOIP普及组】扫雷游戏

    1970:[15NOIP普及组]扫雷游戏 时间限制: 1000 ms         内存限制: 131072 KB提交数: 5638     通过数: 3495 [题目描述] 扫雷游戏是一款十分经典 ...

  4. Django 之RestFramework

    1. 从request先说起 在Django原生的request里,请求的数据可以从request.GET或者request.POST里面取到. 需要注意的是,如果是POST请求,request.PO ...

  5. xmind某一天突然打不开了

    某一天发现xmind双击后,应用未启动 感谢博主:https://www.cnblogs.com/helloLuoLuo/p/11926530.html 将安装目录下的两个ini文件 将文件中将App ...

  6. PHP_冒泡排序代码解析

    <?php /** * 基本思想:将数组中的每一个下标元素遍历出来 *依次将这些下标的值对后面一个下标的值对比 *如果大于后面一位下标的值,将两者调换位置 */ $arr = array (55 ...

  7. 一、100ASK_IMX6ULL嵌入式裸板学习_LED实验(知识点补充二)

    MUX是什么?   MUX(multiplexer数据选择器):   在多路数据传送过程中,能够根据需要将其中任意一路选出来的电路,叫做数据选择器,也称多路选择器或多路开关.   多路转换器的作用主要 ...

  8. ES5 绑定 this 的方法

    this的动态切换,固然为 JavaScript 创造了巨大的灵活性,但也使得编程变得困难和模糊.有时,需要把this固定下来,避免出现意想不到的情况.JavaScript 提供了call.apply ...

  9. pycharm、pyqt5、pyuic、anaconda配置界面

    转载一篇很棒的文档,讲解的是如何在pycharm里面使用QT  desiger勾画界面并且将相应的界面转化成py文件 https://www.jianshu.com/p/8b992e47a0e4 个人 ...

  10. 大数据开源平台CDH 集群(CM6.3.1 + CDH 6.3.2)的部署

    一,概述 我依照博文:https://www.cnblogs.com/liugp/p/16286645.html ,进行了CDH集群的部署.总体来说,基本比较顺利. 在部署过程中,发生了一些小问题.本 ...