当前位置: 首页 > article >正文

【智慧商城 | 项目笔记】第六天

前言智慧商城项目是关于前端的Vue2的项目本系列文章我讲总结我从这个项目中学到的知识点写项目笔记。如果你也在初学Vue或想巩固Vue相关的知识希望这系列文章可以帮助到你。【智慧商城 | 项目笔记】第六天今日完结今日收获1.实现封装通用接口适配多业务场景2.mixins复用 - 处理登录确认框的弹出3.Vuex 跨模块调用 mutation4.打包发布5.打包优化 - 路径懒加载总结今日完结获取收货地址列表渲染通用接口封装和购物车结算立刻购买结算和mixin混入处理完成订单管理和个人中心页面打包今日收获1.实现封装通用接口适配多业务场景当我们在购物车页面或立即购买页面点击购买时都会跳转到支付界面此时我们可以封装通用的订单信息确认接口避免重复写接口调用逻辑这里跟之前封装接口不同的是两个页面传递的参数个数不一样此时我们可以用扩展运算符 …obj 接收不同场景的专属参数购物车传 cartIds立即购买传 goodsId/skuId 等通用接口importrequestfrom/utils/request// 提交订单// mode: cart obj { cartIds, remark } 购物车// mode: buyNow obj { goodsId, goodsNum, goodsSkuId, remark } 立即购买exportconstcheckOrder(mode,obj){returnrequest.get(/checkout/order,{mode,delivery:10,// 10 快递配送couponId:0,// 优惠券isUsePoints:0,// 积分payType:10,// 余额支付...obj})}跳转传递查询参数cart.vuegoPay(){if(this.selCount0){this.$router.push({path:/pay,query:{mode:cart,cartId:this.selCartList.map(itemitem.id).join(,)}})}}跳转传递查询参数prodetail.vuegoBuyNow(){this.$router.push({path:/pay,query:{mode:buyNow,goodsId:this.goodsId,goodsSkuId:this.detail.skuList[0].goods_sku_id,goodsNum:this.addCount}})}在pay.vue中通过$route.query获取参数mode(){returnthis.$route.query.mode},cartIds(){returnthis.$route.query.cartIds},goodsId(){returnthis.$route.query.goodsId},goodsSkuId(){returnthis.$route.query.goodsSkuId},goodsNum(){returnthis.$route.query.goodsNum}基于请求携带参数法请求渲染asyncgetOrderList(){if(this.modecart){const{data:{order,personal}}awaitcheckOrder(this.mode,{cartIds:this.cartIds})this.orderorderthis.personalpersonal}if(this.modebuyNow){const{data:{order,personal}}awaitcheckOrder(this.mode,{goodsId:this.goodsId,goodsSkuId:this.goodsSkuId,goodsNum:this.goodsNum})this.orderorderthis.personalpersonal}}2.mixins复用 - 处理登录确认框的弹出概念Vue 的 Mixin混入是一种组件复用机制可以将多个组件共用的配置项data、methods、生命周期等抽离成独立文件通过 mixins 配置注入到组件中实现代码复用避免重复编写相同逻辑如本例中多个按钮点击前的登录校验。1.建立一个单独的文件夹mixnis在里面编写loginConfirm.js文件exportdefault{// 此处编写的就是 Vue组件实例的 配置项通过一定语法可以直接混入到组件内部// data methods computed 生命周期函数 ...// 注意点// 1. 如果此处 和 组件内提供了同名的 data 或 methods 则组件内优先级更高// 2. 如果编写了生命周期函数则mixins中的生命周期函数 和 页面的生命周期函数// 会用数组管理统一执行methods:{// 根据登录状态判断是否需要显示登录确认框// 1. 如果未登录 显示确认框 返回 true// 2. 如果已登录 啥也不干 返回 falseloginConfirm(){// 判断 token 是否存在if(!this.$store.getters.token){// 弹确认框this.$dialog.confirm({title:温馨提示,message:此时需要先登录才能继续操作哦,confirmButtonText:去登陆,cancelButtonText:再逛逛}).then((){this.$router.replace({path:/login,query:{backUrl:this.$route.fullPath}})}).catch((){})returntrue}returnfalse}}}在需要用到登录校验的组件中引入importloginConfirmfrom/mixins/loginConfirmexportdefault{mixins:[loginConfirm],}asyncaddCart(){if(this.loginConfirm()){return}....},goBuyNow(){if(this.loginConfirm()){return}...}3.Vuex 跨模块调用 mutation因为Vuex 为了模块化管理状态会将不同业务的 state/mutation/action 拆分到不同模块Module中比如本例中用户模块、购物车 cart 模块。默认情况下模块内部的 mutation/action 是命名空间隔离的组件或其他模块无法直接调用需通过特定语法实现跨模块调用。actions:{logout(context){// 1. 调用当前模块的 mutation无需特殊配置context.commit(setUserInfo,{})// 2. 跨模块调用 cart 模块的 mutation核心代码// 语法context.commit(模块名/mutation名, 载荷, { root: true })context.commit(cart/setCartList,{},{root:true})}}4.打包发布当一个项目我们要上线发布时就要进行打包。打包的作用1.解决 “浏览器看不懂” 的问题兼容性 语法转换比如语法转换把 ES6 转成 ES5把 .vue/.jsx 转成浏览器能解析的原生 JS/CSS/HTML2.优化性能减小体积 提升加载速度3.整合资源统一管理 简化部署4.提升开发效率构建流程自动化5.适配不同环境环境隔离打包命令yarn build打包结果在项目的根目录会自动创建一个文件夹’dist’dist中的文件就是打包后的文件只需要放在服务器中即可。打包配置默认情况下需要放在服务器根目录打开如果希望双击运行需要配置publicPath配成相对路径const{defineConfig}require(vue/cli-service)module.exportsdefineConfig({publicPath:./,transpileDependencies:true})5.打包优化 - 路径懒加载说明:当打包构建应用时JavaScript包会变的非常大影响页面加载如果我们能把不同路由对应的组件分割成不同的代码块然后当路由被访问的时候才加载对应组件这样就更高效了。步骤异步组件改造constSearch()import(/views/search/index)constSearchList()import(/views/search/list)constProDetail()import(/views/prodetail/index)constMyOrder()import(/views/myorder/index)路由中应用{path:/search,component:Search},{path:/searchlist,component:SearchList},{path:/prodetail/:id,component:ProDetail},{path:/myorder,component:MyOrder}总结通过学习这个智慧商城项目给我的零碎知识之间都建立起来的联系也学到了很多好用的东西从之前只会打单个知识点的代码到现在可以把知识点整合起来写项目对我收获很大希望你通过我的这系列文章也有所收获感谢你的阅读。如果我的内容对你有帮助请点赞评论收藏。创作不易大家的支持就是我坚持下去的动力

相关文章:

【智慧商城 | 项目笔记】第六天

前言:智慧商城项目是关于前端的Vue2的项目,本系列文章,我讲总结我从这个项目中学到的知识点,写项目笔记。如果你也在初学Vue或想巩固Vue相关的知识,希望这系列文章可以帮助到你。 【智慧商城 | 项目笔记】第六天今日完…...

高速多串激光泵浦二极管驱动电路:可扩展、高电流、高电压、多重安全保护电路架构参考

高速多串激光泵浦二极管驱动电路,可扩展, 连续电流可达25A,支持最高电压90V; 调制频率可达10kHz 多重安全保护电路; 可单独屏蔽故障电流串; 闭环控制,带电流输出; 电路架构是基于多年…...

西门子V15及以上版本通用模拟量处理程序块:1200与1500模拟量滤波程序及报警功能

西门子1200和1500通用模拟量处理程序块,模拟量滤波程序,程序块可方便直接调用,用于过滤峰值且可以方便调用模拟量高低报警。 博图版本V15及以上。工业现场模拟量信号处理总带着点玄学,尤其是车间里那些老设备,时不时给…...

【Python一周入门】学习笔记归纳(二)六大基本类型

文章目录数字(Number)字符串String列表List元组Tuple字典Dictionary集合Set推导式列表推导式字典推导式集合推导式元组推导式(生成器推导式)数字(Number) 数字类型是客观的不可变的,分为整型,浮点型&#…...

Linux(1)的基本使用

系统每次开机默认进入字符界面[rootnode11 ~]# systemctl set-default multi-user.target系统每次开机默认进入图形界面[rootnode11 ~]# systemctl set-default graphical.targetweb界面登录(很少用)[rootnode11 ~]# systemctl enable --now cockpit.soc…...

LatentMorph:将隐式潜空间推理融入图像生成

目录 一、前言 二、 LatentMorph 论文概述 核心问题 方法:LatentMorph 实验结果 核心贡献 三、四个组件是怎么运作的,输入输出是啥 四个组件详解 1. 视觉记忆凝结器 (Memory Condensers) 2. 强化学习驱动的推理调用器 (Reason Invoker) 3.…...

2000-2024年上市公司迪博内部控制指数评分及评级数据

迪博内部控制指数简介迪博内部控制指数(DIB内部控制指数)由深圳迪博企业风险管理技术有限公司发布,是国内权威的上市公司内部控制评价体系。该指数从内部控制五要素(控制环境、风险评估、控制活动、信息与沟通、内部监督&#xff…...

基于Matlab的不变矩算法实现数字验证码识别过程及其GUI界面构建

基于matlab不变矩算法实现数字验证码 过程:先对验证图像进行去噪、定位、归一化等预处理,然后计算待识别数字的不变矩,再进行特征匹配,得到识别结果。 以Matlab软件为开发平台来进行设计实现及仿真,并构建相应的GUI界面…...

M3U8 调试不用愁,这款在线播放工具帮你高效搞定

在音视频开发、流媒体运维的日常工作中,M3U8 格式的流验证与调试是高频需求,不管是验证直播流链路是否通畅,还是排查点播 M3U8 播放异常,都需要一款便捷的工具来支撑。而本地播放器配置繁琐、原生浏览器对 HLS 协议支持有限&#…...

一款轻量高效的 M3U8 在线播放工具,开发者调试必备

在音视频开发、流媒体测试的日常工作中,我们经常会遇到 M3U8 格式的视频流验证需求 —— 不管是检查直播流的可用性,还是调试点播链接的播放兼容性,都需要一个便捷的工具来快速验证。而原生 HTML5 的 video 标签对 HLS 协议支持有限&#xff…...

常见二进制漏洞原理及分析

本文将介绍常见二进制漏洞类型及避免方法。一.虚拟内存的布局Linux中进程使用虚拟内存,再由MMU转换成物理内存,其虚拟内存布局如下,其中堆区向高 地址生长,栈区向低地址生长,且代码段和rodata段为只读属性。栈区 …...

永磁同步电机伺服控制仿真:三环PI参数自整定Matlab模型探秘

永磁同步电机伺服控制仿真三环PI参数自整定 Matlab仿真模型 1.模型简介模型为永磁同步电机伺服控制仿真,采用 Matlab R2018a Simulink搭建。模型内主要包含DC直流电压源、三相逆变器、永磁同步电机、采样模块、SVPWM、Clark、Park、Ipark、位置环、速度环、电流环等…...

用 Copilot 一年后,我的代码质量变好了还是变差了?

01 从怀疑到离不开去年这个时候,GitHub Copilot 刚在我们小组里小范围开放试用。我当时的态度是不屑一顾的——一个 AI 能懂多少逻辑?代码补全不还是靠 IDE 的智能提示?况且我学了几年 Java,写过多少个项目,什么场景没…...

电网电压扰动下相光伏并网逆变器控制的Simulink仿真探索

电网电压扰动联系相光伏并网逆变器的控制 simukink仿真 电流闭环控制的逆变器并网 LCL 型输出滤波器 含有文档报告在光伏并网发电系统中,逆变器作为核心部件,其性能的优劣直接影响到电能质量和系统稳定性。而电网电压扰动是实际运行中不可避免的问题&am…...

内存涨价、供应不稳?嵌入式工程师必看:适合轻量级项目ARM选型与存储避坑指南

在嵌入式开发的圈子里,很多工程师都经历过这种“阵痛”: 原本用得好好的高性能单片机(MCU),随着项目需求的增加——要接个高分辨率屏、要做个复杂的协议转换、要跑个轻量级语音识别,或者要处理多路音频流—…...

高速追剪程序之定长追剪实战

高速追剪程序,定长追剪,威纶触摸屏汇川5u全套程序,注释清楚。最近搞了个高速追剪的项目,用的是威纶触摸屏搭配汇川5u的全套程序,今天来跟大家分享一下。 整体思路 高速追剪的核心目标就是在物料高速运动过程中&#xf…...

提示词工程:这样跟AI说话,它才听你的!

哈,提示词是什么?简单来说,提示词(Prompt) 就是你向人工智能(比如我)发出的指令或问题。它是你用来描述“希望AI干什么”的那段文字。AI会根据你提供的提示词,来生成相应的回答或内容…...

微电网二次控制:下垂控制与基于数据采样二次控制的奇妙融合

微电网二次控制,下垂控制,基于数据采样的二次控制,补偿了下垂控制的偏差,实现了有功均分,效果好在微电网的运行控制领域,下垂控制和基于数据采样的二次控制是两个关键的技术点,它们相互配合&…...

无人零售/五金厂必看!边缘设备Java+YOLOv11推理稳定性全攻略:崩溃率从15%降到0.1%,断点续检1秒恢复

今年帮深圳南山的无人零售创业公司和东莞长安的五金厂同时做了边缘设备Java+YOLOv11推理的稳定性升级——无人零售那边是100个瑞芯微RK3588货架盘点设备,之前的崩溃率15%/天,每天要重启3-5次,数据丢失10%+,断点续检难,每次重启要重新盘点所有10个货架(10分钟),效率低,…...

STM32串口双机模拟汽车电量里程项目:Protues仿真与源码解析

STM32单片机开发的串口双机模拟汽车电量里程项目,两个STM32单片机进行数据交互,模拟主控与驱动传感器发送数据,可以手动调节数据,并显示屏显示出来。 包括程序源码和protues仿真8.12版本。 程序源码注释详细。 非常适合开发人员&a…...

基于Matlab的螺丝轮廓识别:数字图像处理流程

基于matlab的螺丝轮廓识别,matlab数字图像处理。 对输入图像进行灰度化,滤波,平滑操作然后进行阈值化,分割成二值图像,之后对图像进行图像的形态学操作,最终使用边缘检测算法提取边缘,最终获得十…...

SpringBoot3实战集成mzt-biz-log,一行代码搞定业务日志记录

作为后端开发者,业务日志是线上问题排查、操作追溯和审计留痕的核心抓手。手写业务日志不仅重复代码量大,还容易出现记录不规范、关键信息漏记错记的问题,排查线上问题时往往效率极低。最近我在SpringBoot3项目中接入了mzt-biz-log这款轻量业…...

搞嵌入式开发的小伙伴应该都遇到过PID调参这个头疼的问题吧?今天咱们直接上干货,聊聊怎么在STM32上玩转PID自整定和温度控制。先扔个核心代码片段镇楼

基于STM32开发的PID自整定和PID温控和PWM输出程序源码,采用反馈法进行PID参数自动整定,得出系统临界值比例增益,自动计算调节,使系统进入正常状态。 程序源码注释详细typedef struct {float Kp;float Ki;float Kd;float integral_…...

智能指针相关

零、预备知识 右值: 表示不可寻址的临时数据值。 根据C11标准,右值分为纯右值(如字面量、表达式结果)和将亡值(即将销毁的对象)。 右值具有不可修改、无持久内存地址的特性 右值引用&&、移动语义…...

当立体车库遇上PLC仿真

西门子1200PLC立体车库 33立体车库 博图触摸屏仿真 不需要实物 自带人机界面,动画,可以仿真 还有接线图原理图 现在拥有自动出入仓库的功能 IO表已列出最近捣鼓了个挺有意思的项目——基于西门子1200PLC的33立体车库仿真。不用焊线接电机,纯…...

HTML基础教程(一)

目录 一、HTML基本概念 二、基础HTML (Tag) 三、Html常用格式 一、HTML基本概念 什么是HTML文件? HTML的英文全称是Hypertext Marked Language,中文叫做“超文本标记语言”。和一般文本的不同的是,一个HTML文件不…...

AI基石 | 对齐技术:从 RLHF 到 DPO —— 赋予大模型“三观”的终极进化

AI基石 | 对齐技术:从 RLHF 到 DPO —— 赋予大模型“三观”的终极进化 前言 如果 SFT(监督微调)后的模型是一个“懂事”的练习生,那么对齐后的模型就是一个“老练”的专家。 练习生虽然知道问答的格式,但依然存在两个…...

俄罗斯RT-2PM2“白杨-M“(Topol-M)洲际弹道导弹系统完整技术报告

Comprehensive Technical Report on Russias RT-2PM2 Topol-M Intercontinental Ballistic Missile System 报告日期:2026年3月11日 保密级别:公开来源情报(OSINT) 摘要(Executive Summary) RT-2PM2"…...

Java线程池面试题50道(含答案解析)

在Java后端开发面试中,线程池(ThreadPool) 是并发编程的重要考点之一。 在高并发系统中,合理使用线程池可以 提高系统性能、减少线程创建开销、避免资源耗尽。 很多互联网公司在面试Java工程师时都会重点考察: 线程池原…...

Clawdbot 杀红眼了,几天怒斩 80k+ Star!你真正的 AI 数字员工来了!!(附保姆级安装使用教程)

最近一款 AI 开源工具 Clawdbot 杀疯了,人送外号:大龙虾,短短几天时间,GitHub 上 Star 数量暴涨到 80k,因为名称与 Claude 相似,还被 Anthropic 公司警告被迫改名:Moltbot。 Moltbot 的核心是它…...