Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式 + 库。它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。
这个状态自管理应用包含以下几个部分:
- 状态,驱动应用的数据源;
- 视图,以声明方式将状态映射到视图;
- 操作,响应在视图上的用户输入导致的状态变化。
文章图片
Vuex是应用程序的状态管理。有五个默认的基本的对象:
- state:存储状态数据
- getters: 状态(state)的计算属性,对标Vue里的的computed 计算属性。
- mutations:对标与Vue里的mothods方法,注意他的同步的。
- actions:需要注意他是异步的,很多数据获取的工作,比如调用api接口都在这里完成。
- modules:store的子模块,在开发大型项目的时候你一定会用的上。
文章图片
import Vue from "vue";
import Vuex from "vuex";
import * as snackbar from "@/store/snackbar";
import { api_request } from "@/util/network";
Vue.use(Vuex);
export default new Vuex.Store({
state: {
defaultLaunchpadId: null,
loginTitle: null,
},
mutations: {
show_defaultLaunchpadId(state, id) {
state.defaultLaunchpadId = id;
},
show_loginTitle(state, title) {
state.loginTitle = title;
}
},
actions: {
async fetchDefaultLaunchpad({ commit }) {
await Vue.http
.get("api/launchpad")
.delegateTo(api_request)
.then(res => {
if (res && res.autorunApplication) {
commit("show_defaultLaunchpadId", res.autorunApplication);
}
});
},
async fetchLoginTitle({ commit }) {
await Vue.http
.get("api/login")
.delegateTo(api_request)
.then(res => {
if (res && res.logoDesc) {
commit("show_loginTitle", res.logoDesc);
}
});
}
},
modules: { snackbar }
});
【使用Vuex实现集中式存储管理应用的所有组件的状态】调用其方法:
store.dispatch("fetchLoginTitle");
store.dispatch("fetchDefaultLaunchpad");
推荐阅读
- JAVA后端|Java日期处理
- vue|记事本(本地应用,基于vue.js)
- js|Vue快速入门-个人笔记
- 前端|vue快基础知识快速入门
- js|vue table checkbox 单选问题
- Web3|Web3js获取MetaMask钱包并监听切换
- js方法|Vuex入门(六)——mapState, mapGetters, mapMutations, mapActions全网最全详解终结篇(带源码)
- vue|Vue项目使用开发工具vuejs-devtools最新简单安装方法
- js方法|Vuex入门(五)—— 封装module全网最全详解(带源码)