vuex 状态管理模式 + 库(大仓库与小仓库)
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 状态管理模式 + 库(大仓库与小仓库)相关推荐
- vuex状态管理模式:入门demo(状态管理仓)
Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式.它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化.Vuex 也集成到 Vue 的官方调试工具 ...
- Vuex状态管理模式-M
Vuex Vuex 是一个专为 Vue.js 开发的状态管理模式.主要是是做数据交互,父子组件传值可以很容易办到,但是兄弟组件间传值(兄弟组件下又有父子组件),页面多并且一层嵌套一层的传值,非常麻烦, ...
- Vuex 状态管理模式(使用)
一.Vuex简介 Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式.它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化. 二.使用 1.安装依赖 ...
- uvex快速入门 Vue.js 应用程序开发的状态管理模式 + 库
参考视频 vue参考文档 VueX 大型项目 管理公共数据的工具 作用: 独立与组件系统之外的,状态管理工具,采用集中式存储管理所有的组件状态,解决多组件数据通信(跨组件通信 A组件修改数据其他组件都 ...
- 状态管理模式 - vuex 的使用介绍
前言 大家好,不知道大家在用 vue 进行开发过程中有没有遇到这样一种场景,就是有些时候一些数据是一种通用的共享数据(比如登录信息),那么这类数据在各个组件模块中可能都会用到,如果每个组件中都去后台重 ...
- Vue组件传值存在的弊端-Vuex状态管理
以下内容纯属个人理解,旨在记录和分享. 导入 使用Vue组件传值,可以实现父子组件之间的数据交换.但实际上,在应用过程中仍然存在很多不便之处: 当存在多层组件嵌套时,组件之间的传值将会变得极度麻烦和繁 ...
- vue2项目复习01-关闭elint检校,src文件别名,路由传参的对象写法,代理解决跨域问题,nprogress,vuex状态管理库,store的模块式开发,节流与防抖,编程式导航+事件委托路由跳转
1.关闭elint语法校验 创建vue.config.js //关闭elint语法校验 {lintOnSave:false; } 2.src文件夹配置别名 jsconfig.json配置别名 @代表s ...
- mount 返回状态_状态管理模式 — Vuex如何使用?
Extract 试想当我们在开发一个Vue应用程序时,如果在一个项目中频繁的使用组件传参的方式来同步data中的值,一旦项目结构变得复杂,管理和维护这些数据将变得十分繁琐,为此,Vue为这些被多个组件 ...
- 理解vuex -- vue的状态管理模式
2019独角兽企业重金招聘Python工程师标准>>> vuex是什么? 先引用vuex官网的话: Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式.它采用集中式存储管 ...
- 【Vue.js】全局状态管理模式插件vuex
文章目录 全局状态管理模式Vuex vuex是什么? 什么是"状态管理模式"? vuex的应用场景 Vuex安装 开始 核心概念 一.State 1.单一状态树 2.在 Vue 组 ...
最新文章
- 一般关于大宗商品的供需关系相关的数据网址有哪些?
- java怎么输出集合_Java 输出集合中的元素
- 【基础】ABAP不同变量类型之间数值大小比较
- Delphi通过IE窗口句柄获取网页接口(IWebBrowser2)
- 【spider】Tesseract机器视觉实现验证码识别
- 还没使用过Web Worker? 推荐一款开源工具Workerize-Loader,让你在webpack项目中轻松使用Web Worker
- java堆排序解决topk问题,利用堆排序来解决topK问题
- 大屏实时监控-2019年CSDN博客之星年度总评选(2019-01-20 23:30)
- android按钮对齐方式,表格行中三个按钮的对齐方式Android
- Unity3D 游戏开发构架篇 ——输入控制
- PV操作经典问题通解
- Java doc或docx转pdf文件预览
- 惠普服务器故障代码_HP服务器常见代码
- STM32F427/STM32F437高性能MCU微控制器介绍
- 心形线(Java语言实现) 原理与具体实现
- 解决windows指纹解锁过一段时间就使用不了、需要重新录入指纹才可以使用的问题
- 眼光毒辣!这家投资团队让 “鸡蛋森” 马克安德森投了都说好
- ProgressDialog在线程里下载图片
- js中appendChild的用法
- ElementUI Card组件触发点击事件
热门文章
- Html5 css3 导航箭头,HTML – CSS3导航箭头
- yolov4用1050ti_Windows下基于VS2019|Opencv4.2.0|CUDA10.0|YOLOv4
- rd640 linux raid,联想服务器rd640如何设置raid 1
- java画直方图_算法练习(11):Java直方图的绘制(1.1.32)
- Mybatis辅助神器-MyBatis Log Plugin,定位java中SQL问题
- 计算机一级评分原理,计算机一级Word和Excel操作自动评分的实现探究
- 初入职场如何时间管理课程总结-B站
- 自学Java第二天 解决java不能输出中文问题
- 认识PaaS、SaaS、LaaS、aPaaS(一堆废话,谨慎进入)
- 小松的STM32教程(2)—— OLED显示