Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式 + 库。它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。

如果您需要构建一个中大型单页应用,您很可能会考虑如何更好地在组件外部管理状态,Vuex 将会成为自然而然的选择。

但需要管理的状态实在太多,全部堆放在一个 state 中,在使用的还是不便,这个 时候我们可以在 store 中创建多个模块。

本例中 拥有两个组件 Home 与 Search

在 store 文件中新建 Home 文件夹 与 Search 文件夹,下面分别创建 index.js ,文件目录如下

在 Home 的 index.js ( Search > index.js 同) 中:

// home小仓库
export default {state: {},mutations: {},actions: {}},modules: {}}

在 store > index.js 中

import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)
// 引入小仓库
import home from './home'
import search from './search'
export default new Vuex.Store({modules:{home,search}
})

这样我们变完成了在一个大仓库中创建多个小仓库,分别管理各自的数据。

实例:

在组件中访问数据时,先通过store.dispatch 派发 action ,acion 再 commit 提交 到 mutations,

在 mutations 中修改  state.

举例:

import {reqGetSearchInfo} from "@/api"
// search 模块小仓库
export default{state: {searchList :{}},mutations: {GETSEARCHLIST(state,searchList){state.searchList = searchList}},actions: {async getSearchList({commit},params={}){// reqGetSearchInfo({}) 在调用的时候至少传一个空对象let result =  await reqGetSearchInfo(params)  //params 是当用户派发 action 的时候第二个参数,至少是个空对象if(result.status == 200){commit("GETSEARCHLIST",result.data.data)console.log(result.data.data);}}},//用于计算属性,主要作用是 简化数据而生,方便在组件中用getters:{goodsList(state){  // 这是当前仓库的 statereturn state.searchList.goodsList || [] // 如果突然没网,返回的就是 undefined ,所以给一个空数组以防万一},trademarkList(state){return state.searchList.trademarkList || []},attrsList(state){return state.searchList.attrsList || []}},modules: {}}
// home小仓库
import {reqCategoryList} from '@/api'
export default {state: {categoryList:[],},mutations: {CATEGORYLIST(state,categoryList){state.categoryList = categoryList}},actions: {async categoryList({commit}){let res = await reqCategoryList() // 因为 axios 返回的是一个promise 所以这里用 await 这样返回的结果就是对象if (res.status == 200) {commit("CATEGORYLIST",res.data.data)}}},modules: {}}

vuex 状态管理模式 + 库(大仓库与小仓库)相关推荐

  1. vuex状态管理模式:入门demo(状态管理仓)

    Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式.它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化.Vuex 也集成到 Vue 的官方调试工具 ...

  2. Vuex状态管理模式-M

    Vuex Vuex 是一个专为 Vue.js 开发的状态管理模式.主要是是做数据交互,父子组件传值可以很容易办到,但是兄弟组件间传值(兄弟组件下又有父子组件),页面多并且一层嵌套一层的传值,非常麻烦, ...

  3. Vuex 状态管理模式(使用)

    一.Vuex简介 Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式.它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化. 二.使用 1.安装依赖 ...

  4. uvex快速入门 Vue.js 应用程序开发的状态管理模式 + 库

    参考视频 vue参考文档 VueX 大型项目 管理公共数据的工具 作用: 独立与组件系统之外的,状态管理工具,采用集中式存储管理所有的组件状态,解决多组件数据通信(跨组件通信 A组件修改数据其他组件都 ...

  5. 状态管理模式 - vuex 的使用介绍

    前言 大家好,不知道大家在用 vue 进行开发过程中有没有遇到这样一种场景,就是有些时候一些数据是一种通用的共享数据(比如登录信息),那么这类数据在各个组件模块中可能都会用到,如果每个组件中都去后台重 ...

  6. Vue组件传值存在的弊端-Vuex状态管理

    以下内容纯属个人理解,旨在记录和分享. 导入 使用Vue组件传值,可以实现父子组件之间的数据交换.但实际上,在应用过程中仍然存在很多不便之处: 当存在多层组件嵌套时,组件之间的传值将会变得极度麻烦和繁 ...

  7. vue2项目复习01-关闭elint检校,src文件别名,路由传参的对象写法,代理解决跨域问题,nprogress,vuex状态管理库,store的模块式开发,节流与防抖,编程式导航+事件委托路由跳转

    1.关闭elint语法校验 创建vue.config.js //关闭elint语法校验 {lintOnSave:false; } 2.src文件夹配置别名 jsconfig.json配置别名 @代表s ...

  8. mount 返回状态_状态管理模式 — Vuex如何使用?

    Extract 试想当我们在开发一个Vue应用程序时,如果在一个项目中频繁的使用组件传参的方式来同步data中的值,一旦项目结构变得复杂,管理和维护这些数据将变得十分繁琐,为此,Vue为这些被多个组件 ...

  9. 理解vuex -- vue的状态管理模式

    2019独角兽企业重金招聘Python工程师标准>>> vuex是什么? 先引用vuex官网的话: Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式.它采用集中式存储管 ...

  10. 【Vue.js】全局状态管理模式插件vuex

    文章目录 全局状态管理模式Vuex vuex是什么? 什么是"状态管理模式"? vuex的应用场景 Vuex安装 开始 核心概念 一.State 1.单一状态树 2.在 Vue 组 ...

最新文章

  1. 一般关于大宗商品的供需关系相关的数据网址有哪些?
  2. java怎么输出集合_Java 输出集合中的元素
  3. 【基础】ABAP不同变量类型之间数值大小比较
  4. Delphi通过IE窗口句柄获取网页接口(IWebBrowser2)
  5. 【spider】Tesseract机器视觉实现验证码识别
  6. 还没使用过Web Worker? 推荐一款开源工具Workerize-Loader,让你在webpack项目中轻松使用Web Worker
  7. java堆排序解决topk问题,利用堆排序来解决topK问题
  8. 大屏实时监控-2019年CSDN博客之星年度总评选(2019-01-20 23:30)
  9. android按钮对齐方式,表格行中三个按钮的对齐方式Android
  10. Unity3D 游戏开发构架篇 ——输入控制
  11. PV操作经典问题通解
  12. Java doc或docx转pdf文件预览
  13. 惠普服务器故障代码_HP服务器常见代码
  14. STM32F427/STM32F437高性能MCU微控制器介绍
  15. 心形线(Java语言实现) 原理与具体实现
  16. 解决windows指纹解锁过一段时间就使用不了、需要重新录入指纹才可以使用的问题
  17. 眼光毒辣!这家投资团队让 “鸡蛋森” 马克安德森投了都说好
  18. ProgressDialog在线程里下载图片
  19. js中appendChild的用法
  20. ElementUI Card组件触发点击事件

热门文章

  1. Html5 css3 导航箭头,HTML – CSS3导航箭头
  2. yolov4用1050ti_Windows下基于VS2019|Opencv4.2.0|CUDA10.0|YOLOv4
  3. rd640 linux raid,联想服务器rd640如何设置raid 1
  4. java画直方图_算法练习(11):Java直方图的绘制(1.1.32)
  5. Mybatis辅助神器-MyBatis Log Plugin,定位java中SQL问题
  6. 计算机一级评分原理,计算机一级Word和Excel操作自动评分的实现探究
  7. 初入职场如何时间管理课程总结-B站
  8. 自学Java第二天 解决java不能输出中文问题
  9. 认识PaaS、SaaS、LaaS、aPaaS(一堆废话,谨慎进入)
  10. 小松的STM32教程(2)—— OLED显示