vue2和vue3的modules :
store/modules/home.js export default { state: { // 服务器数据 banners: [], recommends: [] }, mutations: { changeBanners(state, banners) { state.banners = banners }, changeRecommends(state, recommends) { state.recommends = recommends } }, actions: { fetchHomeMultidataAction(context) { return new Promise(async (resolve, reject) => { // 3.await/async const res = await fetch("http://123.207.32.32:8000/home/multidata") const data = await res.json() // 修改state数据 context.commit("changeBanners", data.data.banner.list) context.commit("changeRecommends", data.data.recommend.list) resolve("aaaaa") }) } } }
store/index.js import { createStore } from 'vuex' import homeModule from './modules/home' const store = createStore({ state: () => ({ }), getters: { }, mutations: { }, actions: { }, modules: { home: homeModule, } }) export default store
使用 : <template> <div class="home"> <h2>Home Page</h2> <ul> <!-- 获取数据: 需要从模块中获取 state.modulename.xxx --> <template v-for="item in $store.state.home.banners" :key="item.acm"> <li>{{ item.title }}</li> </template> <!-- 2.使用getters时, 是直接getters.xxx --> </ul> </div> </template> <script> </script> <script setup> import { useStore } from 'vuex' // 告诉Vuex发起网络请求 // 派发事件时, 默认也是不需要跟模块名称 // 提交mutation时, 默认也是不需要跟模块名称 const store = useStore() store.dispatch("fetchHomeMultidataAction").then(res => { console.log("home中的then被回调:", res) }) </script> <style scoped> </style>
本文来自博客园,作者:杨建鑫,转载请注明原文链接:https://www.cnblogs.com/qd-lbxx/p/16639144.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现