1:为什么说要是永远状态管理

在使用 Vue 框架做单页面应用时,我们时常会遇到传值,组件公用状态的问题。(子父间传值文章传送门) ,如果是简单的应用,兄弟组件之间通信还能使用 eventBus 来作为中介。但是一旦应用比较庞大,那状态将会变得难以维持管理。

Vue 为我们提供了进行大型状态管理的 Vuex,类似 Flux 。Vuex 采用了集中式存储管理所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。

2:介绍下vuex

vuex由以下几部分组成:

  • state
  • mutations
  • getters
  • actions
  • modules
    • state里面就是存放项目中需要多组件共享的状态
    • mutations就是存放更改state里状态的方法
    • getters就是从state中派生出状态,比如将state中的某个状态进行过滤然后获取新的状态。
    • actions就是mutation的加强版,它可以通过commit mutations中的方法来改变状态,最重要的是它可以进行异步操作
    • modules顾名思义,就是当用这个容器来装这些状态还是显得混乱的时候,我们就可以把容器分成几块,把状态和管理规则分类来装。这和我们创建js模块是一个目的,让代码结构更清晰。
    • 【state】vuex核心概念有五个,试想当我们把所有的状态从各个组件抽出来,放入了state中:message和bookList;
    • 【mutations】某个时候,某个组件中,我们需要把state中的message改变数据,我们要通过调用commit方法提交到mutations对应的事件:commit('showMessage'),这样就会调用mutations里showMessage方法;调用方法是如上面代码中57行的方式;
    • 【getters】某个时间,某个组件我们需要获得bookList中价格小于85的所有数据,vuex中允许我们通过getters来获取:使用方法如上代码中60行
    • actions】这个是mutations的强化部分,只是这个里面的函数可以异步操作,比如网络请求等等;这里面的方法如果要更改状态,最好要通过commit()函数提交到mutations里去处理。官方是这么说的。在实例里调用一般是通过dispatch('funName')来调用的;例如实例中:66行代码
    • 【关于moduls】modules其实就是多个状态管理库,放在一个对象里,比如我们有2个状态库:storeA,storeB。我们在modules里就和上面代码中50行的写法是一样的。

3:使用安装vuex

【安装】

npm install vuex --save

  在一个模块化的打包系统中,必须显式地通过 Vue.use() 来安装 Vuex

import Vue from 'vue'
import Vuex from 'vuex' Vue.use(Vuex)

首先给自己应用或者项目创建一个store(为创建一个整体的状态管理)

也可以根据自己的需求分成多了需要在主的里面引入自己的各个模块的状态管理:

比如我要把用户的登陆信息放到状态管理里面去,因为在应用的其他页面可能要获取用户信息。如果用户修改了登陆信息也可以随时获取到

      

这样就可以获取到你存入状态管理里面的数据了。

辅助函数请参考:http://www.imooc.com/article/14741

本文参考:https://www.cnblogs.com/wwlhome/p/6522853.html

如有问题还请批评指正。

vue创建状态管理(vuex的store机制)的更多相关文章

  1. Vue之状态管理(vuex)与接口调用

    Vue之状态管理(vuex)与接口调用 一,介绍与需求 1.1,介绍 1,状态管理(vuex) Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式.它采用集中式存储管理应用的所有组件的状态 ...

  2. vue中状态管理vuex的使用分享

    一.main.js中引入 store import store from './store' window.HMO_APP = new Vue({ router, store, render: h = ...

  3. Vue状态管理vuex

    前面的话 由于多个状态分散的跨越在许多组件和交互间各个角落,大型应用复杂度也经常逐渐增长.为了解决这个问题,Vue提供了vuex.本文将详细介绍Vue状态管理vuex 引入 当访问数据对象时,一个 V ...

  4. vue状态管理vuex从浅入深详细讲解

    1.vuex简介以及创建一个简单的仓库 vuex是专门为vue框架而设计出的一个公共数据管理框架,任何组件都可以通过状态管理仓库数据沟通,也可以统一从仓库获取数据,在比较大型的应用中,数据交互庞大的情 ...

  5. Vue状态管理Vuex简单使用

    状态管理保存在store\index.js中,简单说明如下 import Vue from 'vue' import Vuex from 'vuex' Vue.use(Vuex) export def ...

  6. 状态管理Vuex

    路由Router 配置 {path:'/login',component:Login} 路由出口 router-view 传参 {path:'/login/:id',component:Login} ...

  7. 为管理复杂组件状态困扰?试试 vue 简单状态管理 Store 模式【转】

    https://juejin.im/post/5cd50849f265da03a54c3877 在 vue 中,通信有几种形式: 父子组件 emit/on vuex 中共享 state 跨组件 Eve ...

  8. Vue.js状态管理模式 Vuex

    vuex 是一个专为 Vue.js 应用程序开发的状态管理模式.它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化. 安装.使用 vuex 首先我们在 vue. ...

  9. Vue.js 2.x笔记:状态管理Vuex(7)

    1. Vuex简介与安装 1.1 Vuex简介 Vuex是为vue.js应用程序开发的状态管理模式,解决的问题: ◊ 组件之间的传参,多层嵌套组件之间的传参以及各组件之间耦合度过高问题 ◊ 不同状态中 ...

随机推荐

  1. 树形结构模型Django-MPTT

    什么是django-mptt? django-mptt是一个可复用的django app, 旨在让你自己的django项目模型使用MPTT更加简单.它负责将数据库表作为树型结构管理的详细信息,并提供用 ...

  2. css21规范学习

    https://www.w3.org/TR/CSS22 1. An asterisk (*) indicates that the preceding type, word, or group occ ...

  3. 在NOARCHIVELOG和ARCHIVELOG模式之间选择

    本节介绍在选择以NOARCHIVELOG或ARCHIVELOG模式运行数据库时必须考虑的问题,并包含以下主题: 在NOARCHIVELOG模式下运行数据库 在ARCHIVELOG模式下运行数据库 是否 ...

  4. Numerical Analysis

    PART1  <求解方程> 1,二分法 def bisect(f,a,b,TOL=0.000004): u_a = a u_b = b while(u_b-u_a)/2.0 > TO ...

  5. 关于/tmp/ 目录自动清理文件

    问题:今天开发人员给我说了一个错误:The temporary upload location [/tmp/tomcat.1337767218595042057.80/work/Tomcat/loca ...

  6. 【easy】257. Binary Tree Paths 二叉树找到所有路径

    http://blog.csdn.net/crazy1235/article/details/51474128 花样做二叉树的题……居然还是不会么…… /** * Definition for a b ...

  7. webpack打包文件

    npm init -y//生成package.json npm install webpack webpack-cli --save-dev//安装webpack和webpack-cli根据入口文件. ...

  8. c#操作Excel模板,替换命名单元格或关键字形成报表

    c#操作Excel模板,替换命名单元格或关键字形成报表 http://blog.sina.com.cn/s/blog_45eaa01a0102vqma.html一 建立Excel 模板文件 templ ...

  9. 3D 散点图的绘制

    一般情况下,我们用到最多的是axes3d() 中的axes3d.Axes3D()类,AxesD() 类下面存在散点图,线性图,柱状图,曲线图等各种制图方式. 采用matplotlib 生成散点图. 一 ...

  10. lr 中cookie的解释与用法

    Loadrunner 中 cookie 解释与用法loadrunner 中与 cookie 处理相关的常用函数如下: web_add_cookie(): 添加新的 cookie 或者修改已经存在的 c ...