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)
相关推荐
小光学长12 分钟前
基于Vue的图书馆座位预约系统6emrqhc8(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
前端·数据库·vue.js
Y学院22 分钟前
vue的组件通信
前端·javascript·vue.js
患得患失94923 分钟前
【ThreeJs】【伪VR】用 Three.js 实现伪 VR 全景看房系统:低成本实现 3D 级交互体验
javascript·3d·vr
PairsNightRain26 分钟前
React Concurrent Mode 是什么?怎么使用?
前端·react.js·前端框架
小岛前端39 分钟前
React 剧变!
前端·react.js·前端框架
teeeeeeemo1 小时前
Webpack 模块联邦(Module Federation)
开发语言·前端·javascript·笔记·webpack·node.js
Greg_Zhong1 小时前
vue项目安装使用,npm、webpack版本问题注意
vue.js·npm版本、webpack版本
岁月宁静2 小时前
AI聊天系统 实战:打造优雅的聊天记录复制与批量下载功能
前端·vue.js·人工智能
小小弯_Shelby2 小时前
uniApp App内嵌H5打开内部链接,返回手势(左滑右滑页面)会直接关闭H5项目
前端·uni-app
IT_陈寒2 小时前
SpringBoot性能飞跃:5个关键优化让你的应用吞吐量提升300%
前端·人工智能·后端