VUEX核心内容及用法

vuex是实现组件全局状态(数据)管理的一种机制,可以方便组件之间数据的共享。

1. 基本使用

(1)下载vuex依赖包

npm install vuex --save

(2)导入vuex包

import Vuex from ‘vuex’
Vue.use(Vuex)

(3)创建store对象

const store = new Vuex.Store(
state:{
// state中存放的是全局共享的数据
})

(4)将store对象挂载到vue实例中

new Vue({
el:’#app’,
render:h=>h(app),
router,
store
})

2.核心内容

1.State:

内容:State提供唯一的公共数据源,所有共享的数据都要统一放到Store的State中进行存储。
实现方法
1.使用 {{$store.state.xx}}获取xx属性
2.使用 ...mapState([xx])获取xx属性

2.Mutations:

内容:Mutation用于变更Store中的数据。
① 只能通过mutations变更Store中的数据,不可以直接操作Store中的数据。
实现方法
1.使用this.$store.commit(‘方法名’)/this.$store.commit(‘方法名,参数’)进行调用
2.使用 ...mapMutations(['方法名', '方法名'])进行调用

3.Actions:

内容:触发actions异步任务时携带参数
实现方法
1.使用this.$store.dispatch('方法名')/this.$store.dispatch('方法名',参数)进行调用
2.使用:...mapActions(['方法名', '方法名'])进行调用

4.Getter:

内容:对state中的数据进行包装
实现方法
1.使用{{$store.getters.showNum}}进行调用
2.使用 ...mapGetters(['方法名'])进行调用

注意:
在使用第一种方法的时候不需要在组件内导入什么,State和Getter直接取值,Mutations和Actions的方法可在组件的methods中调用或者直接与@click="方法名"调用。
在使用第二种方法的适合需要在组件内
import {mapGetters, mapMutations, mapState, mapActions} from 'vuex'
State和Getter的取值在组件中与methods同级创建computed调用第二种方法,Mutations和Actions的方法可在组件的methods中调用或者直接与@click="方法名"调用。

3.代码块

①store.js:

创建store对象
导入vuex

②main.js:

main.js中进行挂载

③state使用方法:

定义
在这里插入图片描述
调用
方法一:
在这里插入图片描述
方法二:
在这里插入图片描述

④Mutations使用方法:

定义
在这里插入图片描述
调用
方法一:
在这里插入图片描述
方法二:
在这里插入图片描述

③Actions使用方法:

定义
在这里插入图片描述
调用
方法一:
在这里插入图片描述
方法二:
在这里插入图片描述

③Getter使用方法:

定义
在这里插入图片描述
调用
方法一:
在这里插入图片描述
方法二:
在这里插入图片描述
(Ending)

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vuex 是一个专门为 Vue.js 应用程序开发的状态管理库,用于管理组件之间共享的状态。Vuex 有五个核心属性:state、mutations、actions、getters 和 modules。 1. state:state 是一个存储数据的对象,用于存储应用程序的状态。可以通过 this.$store.state.xxx 访问该属性的值。 2. mutations:mutations 是用于修改 state 的数据的方法,它们必须是同步函数。可以通过 this.$store.commit('mutationName') 调用 mutations 的方法。 3. actions:actions 用于处理异步操作和异步任务,可以通过 this.$store.dispatch('actionName') 调用 actions 的方法。actions 可以提交 mutations 来修改 state 的数据。 4. getters:getters 用于访问 state 的数据并进行计算,类似于 Vue.js 的计算属性。可以通过 this.$store.getters.getterName 访问 getters 的方法。 5. modules:modules 允许将 store 分割成模块,每个模块拥有自己的 state、mutations、actions 和 getters。可以通过 this.$store.state.moduleName.xxx 访问模块的 state 属性。 使用方法: 1. 安装 Vuex:npm install vuex --save 2. 创建 store.js 文件,定义 state、mutations、actions、getters 和 modules 等属性。 3. 在 Vue 组件引入 Vuex 并注册 store。 4. 在 Vue 组件通过 this.$store.state.xxx、this.$store.commit('mutationName')、this.$store.dispatch('actionName') 和 this.$store.getters.getterName 访问和修改状态。 示例代码: store.js 文件: ``` import Vue from 'vue' import Vuex from 'vuex' Vue.use(Vuex) const store = new Vuex.Store({ state: { count: 0 }, mutations: { increment (state) { state.count++ } }, actions: { increment (context) { context.commit('increment') } }, getters: { getCount: state => { return state.count } }, modules: { moduleA: { state: {}, mutations: {}, actions: {}, getters: {} }, moduleB: { state: {}, mutations: {}, actions: {}, getters: {} } } }) export default store ``` App.vue 文件: ``` <template> <div> <p>Count: {{ count }}</p> <button @click="increment">Increment</button> <p>GetCount: {{ getCount }}</p> </div> </template> <script> export default { computed: { count () { return this.$store.state.count }, getCount () { return this.$store.getters.getCount } }, methods: { increment () { this.$store.commit('increment') this.$store.dispatch('increment') } } } </script> ``` 以上是一个简单的 Vuex 示例,可以通过按钮点击来增加 count 的值,并通过 getters 获取 count 的值。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值