vuex的使用

1、安装:

javascript 复制代码
npm install vuex --save
2、引入
javascript 复制代码
import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)
3、示例:不能直接改变store的状态,要通过mutation 中的commit进行提交
3、在store文件夹下创建一个store.js文件(与main.js同目录),在里面定义vuex
javascript 复制代码
import Vue from 'vue'
import Vuex from 'vuex'

Vue.use(Vuex)

export default new Vuex.Store({
  // state: 存放变量
  state: {
    count: 1
  },
  // mutation: 存放方法
  mutations: {
    increment (state) {
      state.count++
    }
  }
})
4、在组件中使用的时候可以通过两种方式来注册

(1)第一种注册方法:在组件中把刚才定义好的vuex引入,一般引入名默认为store

javascript 复制代码
<template>
  <div class="hello">{{state.count}}</div>
</template>

<script>
import store from '../vuex-store.js'
export default {
  name: 'HelloWorld',
  // 变量通常在计算属性中返回
  computed: {
    state () {
      return store.state
    }
  }
  methods: {
    increase () {
      store.commit('increment')
    }
  }
}
</script>

(2)全局注入store机制:进行store全局注册后,可以不用在需要使用vuex的组件内进行注册,组件能够直接通过this.$store访问到。

访问state:可以通过this.$store.state访问状态。

访问mutation:可以通过this.$store.commit()提交mutaion来同步的改变状态。

分发action:使用this.$store.dispatch()分发action,这一步通常是异步操作。

获取getters:通过this.$store.getters获取vuex的getters,是对状态的计算属性。

注意:this.$store只能在组件的选项中使用,例如data、methods、computed等。如果在非组件的上下文中(例如在js或vue插件或前置路由守卫等)需要访问vuex,就直接导入并使用store实例即可。
javascript 复制代码
// 假设 store.js 是 Vuex store 的配置文件
import store from './store.js';

// 直接使用 store 实例    
store.commit('setMenuData', res.data)
相关推荐
zhongjiahao2 分钟前
一文带你了解前端全局状态管理
前端
柳安3 分钟前
对keep-alive的理解,它是如何实现的,具体缓存的是什么?
前端
keyV3 分钟前
告别满屏 v-if:用一个自定义指令搞定 Vue 前端权限控制
前端·vue.js·promise
X_Eartha_8155 分钟前
前端学习—HTML基础语法(1)
前端·学习·html
如果你好5 分钟前
一文搞懂事件冒泡与阻止方法:event.stopPropagation() 实战指南
前端·javascript
用户8168694747259 分钟前
深入 useMemo 与 useCallback 的底层实现
前端·react.js
AAA简单玩转程序设计10 分钟前
救命!Java 进阶居然还在考这些“小儿科”?
java·前端
www_stdio10 分钟前
我的猫终于打上冰球了——一个 Vue3 + Coze AI 项目的完整落地手记
javascript·vue.js·coze
MediaTea18 分钟前
思考与练习(第十章 文件与数据格式化)
java·linux·服务器·前端·javascript
JarvanMo21 分钟前
别用英语和你的大语言模型说话
前端