vuex 使用
-
简介
Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。
它采用集中式储存,管理应用的所有组件的状态。并以相应的规则,保证以一种可预测的方式发生变化(响应式)。
如果您不打算开发大型单页应用,使用 Vuex 可能是繁琐冗余的。如果您的应用够简单,您最好不要使用 Vuex。
-
在项目里使用方法
没安装vuex的自行安装:npm install vuex
-
创建vuex实例
文件路径:项目/src/store/index.jsimport Vue from "vue"; import Vuex from "vuex"; Vue.use(Vuex); // vue使用Vuex export default new Vuex.Store({ // new Vuex.Store() 创建Vuex实例 state: {}, // 数据仓库(数据的唯一来源) getters: {}, // 用来获取数据(计算属性) mutations: {}, // 用来修改数据的(相当于function,同步) actions: {}, // 用来提交mutation(异步) modules: {} // 模块化 });
-
main.js中将vuex实例应用并挂载到vue对象上
文件路径:项目/src/main.jsimport Vue from "vue"; import App from "./App.vue"; import router from "./router"; import store from "./store"; // 引用vuex
new Vue({ router, store, render: h => h(App) }).$mount("#app");
-
-
实战代码
-
简单实现count++ 使用到state,mutations
src/store/index.js
import Vue from "vue"; import Vuex from "vuex"; Vue.use(Vuex); export default new Vuex.Store({ state: { count: 0, }, // 数据仓库(数据的唯一来源) mutations: { countChange(state) { state.conut++ } }, // 用来修改数据的(相当于function,同步) });
src/main.js内容同上2.2。
src/app.vue
<template> <div id="app"> <h1>count:{{ this.$store.state.count }}</h1> <button @click="contChangeF">点击count+1</button> </div> </template> <script> export default { name: "app", methods: { contChangeF() { this.$store.commit('countChange'); // 调用mutations中countChange方法,来修改数据。 } } } </script>
拓展:使用commit第二个参数,通过赋值实现上述功能。src/store/index.js
import Vue from "vue"; import Vuex from "vuex"; Vue.use(Vuex); export default new Vuex.Store({ state: { count: 0, }, // 数据仓库(数据的唯一来源) mutations: { countChange(state, data) { state.conut = data; } }, // 用来修改数据的(相当于function,同步) });
src/main.js内容同上2.2。
src/app.vue
<template> <div id="app"> <h1>count:{{ this.$store.state.count }}</h1> <button @click="contChangeF">点击count+1</button> </div> </template> <script> export default { name: "app", methods: { contChangeF() {
var v = this.$store.state.count++;
this.$store.commit('countChange',v); // 调用mutations中countChange方法,来修改数据。
}
}
}
</script> -
进阶实战-用户登录及权限控制
-
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通