Vuex速学篇:(4)把我们的业务按模块分类

4.uniapp+vue3项目使用vuex uniapp+vue3项目使用vuex。这篇文章,既是使用的教程,也是用来解决一个实际问题:uView自定义tabbar减少代码冗余。 阅读详情

文档:http://vuex.vuejs.org/zh-cn/modules.html

这个modules是用来干什么的?
这里写图片描述
前面我们做了一个这样的界面,有登录,有热点新闻。
我们学到了vuex这样一个框架。
这里写图片描述
我们可以看到state里,我们把user_name和新闻是糅合在一起的,如果我们这个项目的多人协作开发,这样就不是很方便。
所以modules就起到了这样一个作用。

我们来演示一下怎么使用这个modules

1.项目结构(我们参考了官方的http://vuex.vuejs.org/zh-cn/structure.html)
把用户和新闻模块分开。
这里写图片描述
2.UserModules.js:

export default{
    state:{
        user_name:""
    },
    mutations:{
        showUserName(state){
            alert(state.user_name);
        }
    },
}

3.NewsModules.js:

export default{
    state:{
        newslist:[],
        newsdetail:{}
    },
    mutations:{
        setAgree(state,agreeNum){
            state.newsdetail.agree = agreeNum;
        }
    },
    actions:{
        agree(context,newsid){
            // 进行请求,获取点赞后的agree字段属性值
            Vue.http.post("http://localhost/agree.php",{newsid:newsid},{emulateJSON:true}).then(function (res) {
                // 处理业务
                // 调用上面setAgree方法更新点赞数
                context.commit("setAgree",res.body.agree);
            },function(){})
        }
    },
    getters:{
        getNews(state){
            return state.newslist.filter(function (news) {
                return !news.isdeleted;
            })
        }
    }
}

4.这2步做好之后,我们已经把用户和新闻分离了,分离之后怎么引入呢?

import UserModule from "./../store/modules/UserModule";
import NewsModule from "./../store/modules/NewsModule";
const  vuex_store = new Vuex.Store({
    modules:{
        users:UserModule,
        news:NewsModule
    }
})    

这个时候是否大功告成呢,肯定不是
这里写图片描述
5.之后我们需要修改组件
news-list.vue:
这里写图片描述
需要修改此处的代码,需要加上我们的模块名,修改之后:

<script>
    export default{
        created(){
            if (this.$store.state.news.newslist.length == 0){
                // 请求服务器获取数据
                this.$http.get("http://localhost/news.php").then(function (res) {
                    this.$store.state.news.newslist = res.body;
                },function (res) {
                    // 请求失败处理
                })
            }
        }
    }
</script>

this.$store.state.news.newslist ,news 就是前面定义的module名。

user-name.vue:
如果我们不做任何修改,点击“提交”按钮是获取不到用户输入的用户名的
这里写图片描述
修改如下:

<script>
    export default{
        props:["placeholder"],
        data:function () {
            return {
                username:""
            }
        },
        methods:{
            userNameChange(){
                //this.$emit("childChange","username",this.username)
                this.$store.state.users.user_name = this.username;
            }
        }
    }
</script>

this.$store.state.user_nam 修改为:this.$store.state.users.user_name。
这里写图片描述

至此,聪明的你应该已经发现:之前代码所有用到state 的地方,都应该加上module名称来访问。

其他注意点

// 进行请求,获取点赞后的agree字段属性值
Vue.http.post("http://localhost/agree.php",{newsid:newsid},{emulateJSON:true}).then(function (res) {
// 处理业务
// 调用上面setAgree方法更新点赞数
context.commit("setAgree",res.body.agree);
},function(){})

NewsModule.js中,我们是通过Vue.http.post() 来获取服务器数据的,可能会找不到Vue,所以在这个文件头部,我们再次引入一下:

import Vue from "vue";
【已解决】TS中引入vuex4会提示 ‘无法找到模块“vuex”的声明文件。 无法找到模块“vuex”的声明文件。“d:/study/shop-admin-with-vue3-vite-ts/node_modules/vuex/dist/vuex.mjs”隐式拥有 “any” 类型。使用 “paths” 映射,在找不到模块的默认路径时,将其映射到类型定义文件。 阅读详情

相关推荐

Vuex 4与状态管理实战指南

excerpt: 这篇文章介绍了使用Vuex进行Vue应用状态管理的最佳实践,包括为何需要状态管理,Vuex的核心概念如store、actions、mutations和getters,以及如何处理异步操作和模块化组织状态。Vuex与Vue的关系是互补的,Vue负责视图层的渲染,而Vuex则负责管理应用的状态。在实际开发中,推荐使用每个框架对应的状态管理解决方案,例如在React中使用Redux,在Vue中使用Vuex,在Angular中使用NgRx。在大型项目中,Vuex的状态结构设计非常重要。

2402_85402030的博客 892

Vue2整合DHTMLXGantt甘特图实战

本文介绍了在Vue2项目中使用DHTMLX Gantt甘特图的方法。主要内容包括:1) 安装DHTMLX Gantt并引入组件;2) 基础配置和汉化处理;3) 数据格式定义和加载方式;4) 常用功能实现如时间线定位、全屏、搜索等;5) 事件处理和API调用;6) 自定义样式修改。文章详细说明了甘特图的核心配置项、数据绑定方式以及交互功能开发,同时提供了完整的示例代码,包括日期格式化、任务状态显示、负责人头像渲染等实用功能实现。

油墨香^-^的博客 7863

零代码构建AI智能体:COZE可视化工作流实战指南

AI智能体(AI Agent)是当前人工智能领域的重要发展方向,它通过模块化设计和工作流驱动,使大语言模型从被动对话转向主动执行。其核心原理在于将复杂的任务分解为可规划、可执行的步骤,并调用外部工具(插件)完成闭环。这一技术价值在于显著降低了自动化流程的开发门槛,让非程序员也能构建实用的数字助手。典型的应用场景包括智能客服、内容自动生成、数据分析和跨系统业务流程自动化。本文以COZE平台为例,深入解析如何通过其直观的可视化界面和丰富的插件生态,像搭积木一样快速搭建如“早安简报生成器”等实用智能体,并分享指令

467

Vue模块化-module

vuex模块化 module

yongzhilu的博客 1407

前端零代码丨UIOTOS + NodeRed:无代码搭建工控上位机的绝配组合!

用户类型价值硬件产品商软硬一体方案,无代码GUI上位机成新卖点软件服务商售前原型演示利器,交付成本降低至1/3平台开发商融合无代码技术,同质化竞争中脱颖而出🚀 总结UIOTOS的前端零代码设计(页面嵌套、属性继承、节点连线)与NodeRed的后端流程自动化,堪称工控与IoT开发的黄金组合。无论是串口通信、SCADA监控还是业务管理,均能实现“无代码交付”,真正让前端不求人,硬件交互触手可及!探索更多案例:UIOTOS官网在线体验。

2502_91192798的博客 757

Xilinx-复旦微-FPGA-眼图BlockDesign系统制作-针对PCIE系统

XIlinx-复旦微电子-FPGA-眼图BlockDesign系统制作-针对PCIE系统,手把手教你如何建立眼图测试

weixin_43444334的博客 2596

vue3学习(七)

vuex状态管理还是很强的,业务中状态管理应该会利用的比较多vuex状态管理不支持API组合式,遗憾就记录到这里,与大家共同进步,uping!

zwrlj527的专栏 1342

livebos报表开发

文章目录1.参数的设定2.展示的内容3.综合展示的效果4.调用过程5.可以在数据库里面查看6.注意事项7.过程代码 1.参数的设定 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-flb5C49A-1619516341977)(/uploads/xinxibuneibuzhishiku/images/m_bc71bb4608053778dbf29e06cd102ae1_r.png)] 2.展示的内容 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-

阿浪的专栏 709

vuex中核心概念中的modules 分模块

目录 1. vuex中的五大核心概念 2. modules的具体使用 3. 直接使用modules对其他核心概念的影响 4. 开启命名空间后对其他核心概念的影响 1. vuex中的五大核心概念 state : 数据源 , 唯一存放数据的地方 mutations : 唯一能够同步修改state的地方 , 调试工具可追踪变化过程 actions : 异步修改数据源 , 经常用来发送ajax请求 getters : vuex中的计算属性 , 依赖于state中原始数据的变化 modules..

m0_58355198的博客 625

Claude Code vs Codex

Claude Code 提供了一个生产就绪(production-ready)的实现,包含良好的错误处理、优雅的关闭逻辑、详细注释和文档,以及内置测试。Claude Code 输出了一个可运行的 Next.js + TypeScript 前端,但错过了一些设计里的黄色主题元素;Codex 则生成自己的版本,没有导出设计中的图片,也没严格遵照设计主题。Codex 完成同样功能,但更简洁直接,文档和注释少一些但功能达标。任务都用同样的提示,使用 TypeScript 实现,并在一天内完成。

weixin_49869937的博客 2382

【毕设保姆级指南】基于YOLOv8的DAGM 2007工业缺陷检测系统从搭建到落地

本教程基于YOLOv8算法实现DAGM 2007工业缺陷检测系统,包含数据处理、模型训练和可视化界面开发全流程。首先对DAGM数据集进行格式转换和划分,然后通过YOLOv8训练工业缺陷检测模型,最终构建PyQt5交互界面实现缺陷可视化检测。该系统可用于智能制造中的产品质量控制,帮助快速定位工业产品缺陷,提升检测效率和准确性,为工业质检提供高效解决方案。

LXY_LOVE36的博客 182

Vuex 模块化详解

本篇主要讲vuex的模块化,虽然官网已经讲得比较细致了,但是在实践的时候还是踩了不少坑。今天就在这里把模块化使用过程中的细节都讲清楚,方便大家学习,也方便自己以后复习。 1.Vuex简单介绍 1.1 Vuex是什么 官方:Vuex是一个专为Vue.js应用程序开发的状态管理模式,采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化(即通过提交mutation来更新状态) Vuex是适用于Vue项目开发时使用的状态管理工具。把组件中的共享状态抽取出来,以一个全局单例模式管理

wuxian_wj的博客 7517

93.华为路由器:IPSec加密GRE通道(GRE over IPsec)

IPSec加密GRE通道 由于GRE隧道不提供安全性保障,使用ipsec加密gre隧道是现网中比较常用的VPN部署,它的加密方式分为两种: 可以使用IPsec来加密隧道进行传输,叫做IPsec over GRE; 加密数据流后从隧道传输,称为GRE over IPsec。 下面将配置一个简单的IPsec over GRE实验。 一、搭建模拟环境 首先我们先搭建环境,先根据拓扑图把基本的IP地址配好,然后分别在AR1、AR3加两条静态路由,使得两个公网互通。 [AR1]in g0/0/0 [AR

迷逝 1万+

在vue3中使用vuex 4.x

最近准备在项目中使用vue3.0,顺便把vuex(目前是^4.0)也升级到最新版本了; 首先通过命令新建脚手架,在src目录下新建store文件夹。并创建index.js入口和modules文件夹(因为我把模块拆分了) user.js文件,一个独立的模块 接下来在index.js里面导入vuex相关api和自己定义的模块 // 这里跟vue2有点区别,vue2中是直接导入vue,然后通过vue.use(xxx) import { createStore } from 'vuex' i.

weixin_43564110的博客 1万+

【S32K3 MCAL配置】-1.1-GPIO配置及其应用-DIO之高低电平输出-点亮LED灯(基于MCAL)

【S32K3 MCAL配置】-1.1-GPIO配置及其应用-点亮LED灯(基于MCAL)

「汽车电子助手」的博客 1936

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

vuex 11 模块化

vuex 模块化

monian187的博客 825

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

【Vuex深入以及模块化编码】

Vuex的深入理解,你值得拥有,头发可不能让他白掉呀!宝贝

小田是个程序员的博客欢迎你的到来呀~ 2135

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

速学Vuex

什么是Vuex? vuex是一个专门为vue.js设计的集中式状态管理架构。状态?我把它理解为在data中的属性需要共享给其他vue组件使用的部分,就叫做状态。简单的说就是data中需要共用的属性。 引入Vuex(前提是已经用Vue脚手架工具构建好项目) 1、利用npm包管理工具,进行安装 vuex。在控制命令行中输入下边的命令就可以了。 npm install ...

ayro4430的博客 133

如何在 Vue 3 中使用 Vuex 4?

在开始之前,我们有必要简单介绍一下 Vuex。Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以可预测的方式发生变化。集中式管理状态:所有的组件状态存储在一个全局对象中。易于调试:通过 Vue Devtools,开发者可以轻松查看和调试 Vuex 的状态和变化。模块化:Vuex 支持模块化,帮助开发者更好地组织代码。

有我更精彩的博客 1661

vuex模块化

为了应对往后的大型项目vuex如果只是停留在存简单的数据那肯定是不行的,很久没做项目了既然不能再项目上找到突破点,那么只能将知识深入学习一波。 先来看看vuex针对模块的搭建的目录结构吧 文件夹放的全是vuex相关的文件store是主要暴露vuex实例的文件最终被引用到main.js import store from './vuex_study_module/store' new ...

qq_40816649的博客 8713

Vuex模块module的详解

Vuex 模块是将 store 分割成多个模块的一种方式,每个模块都有自己的状态、mutations、actions 和 getters。这有助于更好地组织和管理应用程序的状态。

大剑师兰特的GIS世界 1470

vuex3详解及与vuex4的差异

概念:State 本质上就是 Object 对象state的作用是:保存公共数据(多组件中共用的数据)state是响应式的: 如果修改了数据,相应的在视图上的值也会变化。

拥抱变化! 1415

vuex模块化详解

原文链接: https://www.jeremyjone.com/432/ , 转载请注明! vuex为我们提供了状态管理的解决方案,其最基本的结构如下: 在main.js层级下创建一个store.js文件,写入: 然后导入main.js并注册: 这样,最基本的vuex就可以使用了。 随着actions和mutations中的方法越来越多,文件越来越臃肿,我们会觉得越来越不好用。 那么就需...

一只小鹰 4845

Vue实战指南:Vuex模块module详解

本文将详细介绍Vuex模块(module)的概念、作用及其在实际开发中的应用,并通过多个示例来帮助你理解和掌握。通过模块化,我们可以将一个大的状态树分解为多个可管理的小部分,每个模块负责一部分状态的管理。希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。通过上述示例和技巧,你应该能够更好地理解和使用Vuex模块来管理Vue应用中的状态。在较大的应用中,为了避免状态、mutations、actions和getters的命名冲突,可以为模块设置。

一个做过前端开发的产品经理,经历过睿智产品的折磨导致脱发之后,励志要翻身"农奴"把歌唱,一边打入敌人内部一边持续提升自己,为我们广大开发同胞谋福祉,坚决抵制睿智产品折磨我们码农兄弟! 2345

vuex的模块化

user.jsuser: null// 模拟登录操作}, 1000);},!

weixin_44719499的博客 1271
上一篇: 介词短语
下一篇: 并列句
学习笔记666
博客等级 码龄12年 1047粉丝 1369原创
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值