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)
相关推荐
excel1 分钟前
Vue 模板编译中的 srcset 机制详解:从 HTML 语义到编译器实现
前端
excel1 分钟前
🌐 从 Map 到 LRUCache:构建智能缓存工厂函数
前端
excel2 分钟前
Vue 模板编译中的资源路径转换:transformSrcset 深度解析
前端
excel10 分钟前
Vue 工具函数源码解析:URL 解析与分类逻辑详解
前端
excel12 分钟前
Vue SFC 样式预处理器(Style Preprocessor)源码解析
前端
excel14 分钟前
深度解析:Vue Scoped 样式编译原理 —— vue-sfc-scoped 插件源码详解
前端
excel16 分钟前
Vue SFC Trim 插件源码解析:自动清理多余空白的 PostCSS 实现
前端
excel19 分钟前
Vue SFC 样式变量机制源码深度解析:cssVarsPlugin 与编译流程
前端
excel22 分钟前
🧩 Vue 编译工具中的实用函数模块解析
前端
excel25 分钟前
🧩 深入剖析 Vue 编译器中的 TypeScript 类型系统(第五篇)
前端