Vue组件学习 | 二、Vuex组件

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

Vuex 基本用法

安装 Vuex

首先,你需要安装 Vuex。如果你使用的是 npm,可以使用以下命令:

bash 复制代码
npm install vuex --save

创建 Vuex Store

创建一个新的 Vuex store 实例,它将包含所有状态(state)、改变状态的方法(mutations)和获取状态的函数(getters)。

javascript 复制代码
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: {
    doubleCount(state) {
      return state.count * 2
    }
  }
})

在 Vue 组件中使用 Vuex Store

你可以在 Vue 组件中使用 mapStatemapGettersmapActionsmapMutations 辅助函数来使用 Vuex store。

vue 复制代码
<template>
  <div>
    <p>{{ count }}</p>
    <p>{{ doubleCount }}</p>
    <button @click="increment">Increment</button>
  </div>
</template>

<script>
import { mapState, mapGetters, mapActions } from 'vuex'

export default {
  computed: {
    ...mapState(['count']),
    ...mapGetters(['doubleCount'])
  },
  methods: {
    ...mapActions(['increment'])
  }
}
</script>

Vuex 模块

Vuex 允许你将 store 分割成模块,每个模块拥有自己的 state、mutations、actions、getters,甚至是嵌套子模块。

javascript 复制代码
const moduleA = {
  state: { ... },
  mutations: { ... },
  actions: { ... },
  getters: { ... }
}

const store = new Vuex.Store({
  modules: {
    a: moduleA
  }
})

Vuex 严格模式

Vuex 允许你以严格模式运行,这在开发过程中非常有用,因为它会阻止你对状态的直接更改。

javascript 复制代码
const store = new Vuex.Store({
  // ...
  strict: process.env.NODE_ENV !== 'production'
})

Vuex 插件

Vuex 允许你使用插件来扩展 store 的功能。插件可以监听 Vuex store 的 mutation 并响应它们。

javascript 复制代码
const myPlugin = store => {
  store.subscribe((mutation, state) => {
    // 调用 API 或者其他响应
  })
}

const store = new Vuex.Store({
  // ...
  plugins: [myPlugin]
})

以上就是 Vuex 的基本用法。

你可以在 Vuex 官方文档 中找到更多高级用法和配置选项。

相关推荐
0思必得02 小时前
[Web自动化] Selenium处理动态网页
前端·爬虫·python·selenium·自动化
东东5163 小时前
智能社区管理系统的设计与实现ssm+vue
前端·javascript·vue.js·毕业设计·毕设
catino3 小时前
图片、文件的预览
前端·javascript
layman05285 小时前
webpack5 css-loader:从基础到原理
前端·css·webpack
半桔5 小时前
【前端小站】CSS 样式美学:从基础语法到界面精筑的实战宝典
前端·css·html
AI老李5 小时前
PostCSS完全指南:功能/配置/插件/SourceMap/AST/插件开发/自定义语法
前端·javascript·postcss
_OP_CHEN5 小时前
【前端开发之CSS】(一)初识 CSS:网页化妆术的终极指南,新手也能轻松拿捏页面美化!
前端·css·html·网页开发·样式表·界面美化
啊哈一半醒5 小时前
CSS 主流布局
前端·css·css布局·标准流 浮动 定位·flex grid 响应式布局
PHP武器库5 小时前
ULUI:不止于按钮和菜单,一个专注于“业务组件”的纯 CSS 框架
前端·css