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)
相关推荐
BigTopOne7 小时前
WebRTC Native / Android 开发学习资源整理
前端
excel8 小时前
nuxt 3 升级 nuxt 4 报错之 hasInjectionContext
前端
小磊哥er8 小时前
深入解构Claude Code - 第 7 篇 · 连接外面的世界
javascript·ai编程
何以解忧,唯有..8 小时前
LangChain 工具调用(Tool Calling)实战指南
java·前端·langchain
小磊哥er8 小时前
深入解构Claude Code - 第 6 篇 · 终端里的图形界面
javascript·ai编程
海兰8 小时前
【应用】基于 Next.js 16 + Python mplfinance的金融K线图与技术指标可视化平台(一)
javascript·python·金融
软件聚导航9 小时前
「聚小软 AI 助手」技术升级:从数据库检索到 RAG 知识库问答
前端·数据库·mysql·微信小程序·小程序·ai编程·rag
恋猫de小郭9 小时前
看懂大模型架构术语,帮助你理解目前常见的大模型开源架构
前端·人工智能·ai编程
yma1610 小时前
通过提示词实现GitHub Pages 和 Nginx 双部署竟然这么简单?
前端
可乐鸡翅yeah_10 小时前
hls.js 内存泄漏实战排查,直播 M3U8 长时间播放异常定位方案
开发语言·javascript·python·django·ecmascript·m3u8·m3u8在线