Vue学习笔记-vuex
创始人
2024-04-06 08:32:18
0

1. Vuex是什么

概念:专门在 Vue 中实现集中式状态(数据)管理的一个 Vue 插件,对 vue 应用中多个组件的共享状态进行集中式的管理(读/写),也是一种组件间通信的方式,且适用于任意组件间通信

在这里插入图片描述
在这里插入图片描述

2. 什么时候使用Vuex

多个组件依赖于同一状态
来自不同组件的行为需要变更同一状态

3. vuex 的工作原理

在这里插入图片描述

4. vuex环境搭建

  1. 下载 Vuex:npm i vuex

  2. 创建src/store/index.js:

//引入Vue核心库
import Vue from 'vue'
//引入Vuex
import Vuex from 'vuex'
//应用Vuex插件
Vue.use(Vuex)//准备actions对象——响应组件中用户的动作、处理业务逻辑
const actions = {}
//准备mutations对象——修改state中的数据
const mutations = {}
//准备state对象——保存具体的数据
const state = {}//创建并暴露store
export default new Vuex.Store({actions,mutations,state
})
  1. 在src/main.js中创建 vm 时传入store配置项:
import Vue from 'vue'
import App from './App.vue'
import Vuex from 'vuex'
import store from './store'Vue.config.productionTip = falseVue.use(Vuex)new Vue({el:"#app",render: h => h(App),store
})

5. vuex的使用

  1. 初始化数据state,配置actions、mutations,操作文件store.js

  2. 组件中读取vuex中的数据:$store.state.sum

  3. 组件中修改vuex中的数据:$store.dispatch(‘action中的方法名’,数据) 或 $store.commit(‘mutations中的方法名’,数据)

备注:若没有网络请求或其他业务逻辑,组件中也可以越过actions,即不写dispatch,直接编写commit

src/components/Count.vue:


src/store/index.js:

//该文件用于创建vuex最核心的store// 引入Vuex
import Vuex from 'vuex';
import Vue from 'vue';
import vueResource from 'vue-resource';Vue.use(Vuex)
Vue.use(vueResource)//准备 actions 用于响应组件中的动作
const actions = {
/* 	jia(context,value){window.console.log('actions中的jia被调用了')context.commit('JIA',value)},jian(context,value){window.console.log('actions中的jian被调用了')context.commit('JIAN',value)}, */incrementOdd(context,value){window.console.log('actions中的incrementOdd被调用了')if(context.state.sum % 2){context.commit('JIA',value)}},incrementWait(context,value){window.console.log('actions中的incrementWait被调用了')setTimeout(()=>{context.commit('JIA',value)},500)}
}
//准备 mutations 用于操作数据
const mutations = {JIA(state,value){state.sum+=value;},JIAN(state,value){state.sum-=value;}
}
//准备 state 用于存储数据
const state = {sum:0
}//创建并暴露store
export default new Vuex.Store({actions,mutations,state,
})

相关内容

热门资讯

北方铜业(000737)发布市... 截至2025年12月29日收盘,北方铜业(000737)报收于15.2元,较前一交易日下跌2.12%...
制度性突破!这一新机构,在这里... 撰文 | 余晖 12月28日,广州市海珠区人工智能发展局挂牌成立。 这是全国首个独立设置、实体化...
政策动态 | 住建部定调202...   2025年第52周,住建部召开全国城乡建设工作会议,明确来年将着力稳定房地产市场,加快构建房地产...
年内两度减持,獐子岛再遭第三大... 12月29日晚间, 截至公告披露日,和岛一号基金持有公司股份50,082,685股,占公司总股本比...
杭州市滨江区新闻出版局:未发现... 近日,游戏《燕云十六声》上线新时装引发网友争议。12月29日,澎湃新闻记者获悉,据杭州市滨江区新闻出...
赣锋锂业涉嫌内幕交易罪被移送审... 12月29日晚间,锂行业龙头企业赣锋锂业(002460)发布公告称,当日收到宜春市公安局送达的《移送...
湖南芙蓉律师事务所迎来新生力量... 律途添新锐,每月焕新颜! 在法治的广袤星空中,每一位新执业律师都是一颗冉冉升起的新星,为法律界注入全...
车市观察|国内汽车投诉排行榜出... 近日,国内知名的汽车投诉网站“车质网”发布了2025年11月的车型投诉排行榜单,从榜单前30名排行来...
赣锋锂业,涉嫌内幕交易罪单位犯... 12月29日晚,赣锋锂业(002460)公告称,公司收到宜春市公安局的移送起诉告知书:因涉嫌内幕交易...
形势政策系列报告会第四场报告会... 新华社北京12月29日电 由中央宣传部、中央和国家机关工委、教育部、中央军委政治工作部、北京市委联合...