奕玖科技 > 新闻中心 > 技术文章

vuex的介绍及vuex的五种方法

来源: 奕玖科技 瘦死的猪 | 2023/4/4 14:32:17

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

Vuex 可以帮助我们管理全局状态和业务逻辑,让我们可以更好地维护大型复杂的 Vue.js 应用程序。

Vuex 包含以下核心概念:

1.State:存储应用程序的状态数据。

2.Getters:获取 state 数据的计算属性。

3.Mutations:更改 state 数据的唯一方法,通过提交 mutations 来实现。

4.Actions:和 mutations 类似,但是可以包含任意异步操作。

5.Modules:将 state、getters、mutations 和 actions 分成不同的模块管理。

以下是一个使用 Vuex 管理全局状态的示例:

1.安装 Vuex:
npm install vuex
2. 创建 store.js 文件:
import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)
Const state = {
  count: 0
}
const getters = {
  doubleCount (state) {
    return state.count * 2
  }
}
const mutations = {
  increment (state) {
    state.count++
  },
  decrement (state) {
    state.count--
  }
}
const actions = {
  increment ({ commit }) {
    commit('increment')
  },
  decrement ({ commit }) {
    commit('decrement')
  },
  incrementIfOdd ({ commit, state }) {
    if ((state.count + 1) % 2 === 0) {
      commit('increment')
    }
  },
  incrementAsync ({ commit }) {
setTimeout(() => { commit('increment') }, 1000) } }
const store = new Vuex.Store({ state, getters, mutations, actions })
export default store

3. 在 main.js 中注册 store:

```javascript
import Vue from 'vue'
import store from './store'
 
new Vue({
  store,
  render: h => h(App)
}).$mount('#app')

4. 在组件中使用 store:

<template>
  <p>
    {{ count }}
    <button @click="increment">+</button>
    <button @click="decrement">-</button>
    <button @click="incrementIfOdd">increment if odd</button>
    <button @click="incrementAsync">increment async</button>
  </p>
</template>
 
<script>
import { MapState, mapActions } from 'vuex'
 
export default {
  computed: mapState({
    count: state => state.count
  }),
  methods: mapActions([
    'increment',
    'decrement',
    'incrementIfOdd',
    'incrementAsync'
  ])
}
</script>

以上是一个简单的 Vuex 状态管理示例,它演示了如何使用 Vuex 管理状态,并通过 mutations、actions、getters 和 modules 实现数据的更新。

总的来说,Vuex 可以帮助我们更好地管理和维护 Vue.js 应用程序的状态,让我们更加专注于业务逻辑,而不是繁琐的状态管理。

Vuex 中有 5 种主要属性和方法:

1.State:存储应用状态数据。它是唯一的数据源,所有的组件都依赖它来渲染视图。

2.Getters:提供对 state 数据的计算和转换,并以属性的形式对外暴露。

3.Mutations:定义更改 state 的唯一方法,通过提交 mutations 来实现 state 的更改。

4.Actions:和 mutations 类似,但是它们可以进行异步操作,如发送请求或执行一些异步逻辑,然后提交 mutations 来更改 state。

5.Modules:用于拆分 Vuex store 的功能,以便于维护和管理大型项目的状态。

这些属性和方法通过 Vuex store 对象来组织,并可以通过 Vue 组件中的 mapState、mapGetters、mapMutations 和 mapActions 等方法来读取和修改 store 中的数

Vuex 中还有一些其他重要的方法:

1.dispatch:触发 actions 中定义的异步操作,可以通过 store.dispatch 来调用。

2.commit:触发 mutations 中定义的同步操作,可以通过 store.commit 来调用。

3.subscribe:用于监听 state 数据的更改,当 state 发生改变时,会自动触发回调函数。

4.replaceState:用于替换当前 store 中的 state 数据。

总的来说,Vuex 提供了丰富的 Api 和工具,帮助我们实现复杂的状态管理,提高项目的开发效率和代码的可读性。

上一篇:vue里scoped的原理
栏目导航
相关文章
文章标签
关于我们
公司简介
企业文化
资质荣誉
服务项目
高端网站定制
微信小程序开发
SEO排名推广
新闻动态
行业新闻
技术学院
常见问题
联系我们
联系我们
人才招聘
联系方式
Q Q:24722
微信:24722
电话:13207941926
地址:江西省抚州市赣东大道融旺国际3栋
Copyright©2008-2022 抚州市奕玖科技有限公司 备案号:赣ICP备2022010182号-1