vuex入门
有些数据是多个页面共同需要,甚至都会修改的。这时候就需要统一的数据/状态管理,vuejs里面vuex负责。
基本原理:
所有数据 都保存在 vuex.State
可以直接读取,也可以通过getter 读取的同时作些计算
不能直接修改数据,需要commit Mutation / dispatch Action 来修改数据
(理由是响应数据变化,其实响应可以用监听的,监听/双向绑定可是vue强项,这里还是要限制双向绑定,避免数据修改太灵活)
Mutation 是同步函数,即时的修改 State
Action在mutation外面包一层,更灵活,例如异步的获得结果,再通过commit mutation修改数据
如果据只供单个页面使用,但也很复杂,多个函数读取修改,也需要vuex来管理,通过Module分成几个部分,每个部分类似
基本使用:
1 引入Vue 并使用 Vue.use(Vuex) 挂到 Vue上
2 创建 vuex 实例 store,并写好 state/mutation/action等
const store = new Vuex.Store({state/mutation/action...})
3 使用 Vue.prototype.$store = store 挂到 Vue上
( Vue.prototype.$store和全局引用,同样作用,uniapp官方示例和慕课网教程同时写,不研究了,暂且都写)
4 全局引入
const app = new Vue({
store,
...App
})
5 读取:
每个vue页面都可以使用 this.$store.state 直接读取 (响应式,会自动更新)
也可以在computed 里面包一层,
更普遍做法是 使用 mapStates 函数,展开到 computed 里面
更改:
修改数据 调用 this.$store.dispatch action 或者 this.$store.commit mutation(响应式,会同步到所有用到页面)
简便写法,使用 mapMutations / mapActions 展开到 methods里面调用
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现