Vue移动端项目--瑞幸咖啡重构优化

来了客官,好久不见!

从年初开始,就有个想法,想着把之前做过的项目重新整理一下。毕竟今时不同往日,从现在的角度去看曾经做过的项目,倒是觉得有很多稚嫩的地方。毕竟无论做什么都是熟能生巧,由浅入深嘛。

瑞幸咖啡是之前做过的一个vue移动端项目,项目也是比较粗浅,结构比较混乱。之所以重构代码,一方面是对自己的一个总结,另一方面也是为了众多前端初学者行一个方便之举,能够更好地实战vue框架。

如果对这个项目不了解,可以点击这里Vue项目-手机app瑞幸咖啡详解(全网最细) 从脚手架搭建到前后端数据交互本次重构依旧采用vue2框架,只是接口采用json-server的形式模拟实现,功能基本能够复现。好了,废话不多说,下面就简单介绍一下本次重构内容!

一,项目结构

在这里插入图片描述

  • public 这个就不用介绍了吧

  • src 开发目录

    • src/assets 存放项目下的静态资源(图片,icon,字体文件等)
    • src/components 项目下的公共组件
    • src/hooks 存放公共请求处理函数(如获取用户收货地址)
    • src/pages 项目页面组件
    • src/router 存放路由(包括路由列表,路由守卫)
    • src/store vueX目录
    • src/utils 存放项目公用工具类(如存取userInfo)
  • App.vue 项目主组件

  • main.js 入口文件

  • db.json 存放json-server数据(很重要,用来模拟接口)

  • README.md 项目说明文件

    其余文件可以不用关注,或者自行搜索了解

二,项目启动

step 1

npm install
or
yarn install

step 2

npm run server

step 3

npm run serve
or
yarn serve

三、账号登录

经过以上步骤,项目就能够成功启动,但是项目必须登录才能进入,本项目设置了三个账号,存放在项目文件中,读者可自行拉取代码体验,文章最后我会附上项目完整免费源码(是不是良心博主)。

在这里插入图片描述
先别急,这里有必要作个说明,此处登录需要账号(也就是手机号)和验证码,验证码按照以上步骤获取即可,只有手机号合法且验证码正确方可登录成功!

四,重构说明

在这里插入图片描述

本项目共分为上图五个模块以及登录模块。本次项目重构整合了所有页面组件,公共组件,静态资源,改用json-server模拟接口实现页面功能。在复现之前所有功能的前提下,优化了部分功能,如购物车、订单模块等,还新增了账户余额查询,订单评论功能。
对于之前的代码也作出了优化,删除或更改了冗余的代码块,提取公用代码块为工具类,对于路由守卫也作出了更改,对于页面访问的权限只有登录账户才能访问。
对于组件名,变量名等统一了规范,全部按照阿里前端规范修改,变量或函数名更加语义化,也都做了详细的代码注释,方便初学者更加容易理解。
此外还修改了部分代码或是css的bug,使得项目运行更加流畅。当然,json-server模拟接口可能并不尽人意,奈何我只是小小一个前端。况且,重点是在于对于vue框架的项目实战学习。

五,总结

本次项目重构断断续续也花了挺久时间的,中间也是磕磕绊绊。好在重构工作初步完成,当然后续可能也会继续进行优化的。当下初学前端的读者可以点点关注,期待下后续吧!一个最最良心的前端博主!

最后的最后,最重要的源码地址(拉取默认分支即可):

https://gitee.com/sandas/ruixing

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/44022.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

深度学习推理和训练

优化和泛化 深度学习的根本问题是优化和泛化之间的对立。 • 优化(optimization)是指调节模型以在 训练数据 上得到最佳性能(即机器学习中的学习)。 • 泛化(generalization)是指训练好的模型在 前所未…

2023JAVA 架构师面试 130 题含答案:JVM+spring+ 分布式 + 并发编程》...

此文包含 Java 面试的各个方面,史上最全,苦心整理最全 Java 面试题目整理包括基JVM算法数据库优化算法数据结构分布式并发编程缓存等,使用层面广,知识量大,涉及你的知识盲点。要想在面试者中出类拔萃就要比人付出更多的…

nginx怎么做负载均衡

Nginx怎么做负载均衡 Nginx 是一个高性能的开源反向代理服务器,可以用于实现负载均衡。负载均衡指的是将用户请求平均分配给多个服务器,以提高整体系统性能和可靠性。下面是一个详细介绍如何使用 Nginx 实现负载均衡的步骤: 步骤 1&#xf…

【Nodejs】Node.js简介

1.前言 Node 的重要性已经不言而喻,很多互联网公司都已经有大量的高性能系统运行在 Node 之上。Node 凭借其单线程、异步等举措实现了极高的性能基准。此外,目前最为流行的 Web 开发模式是前后端分离的形式,即前端开发者与后端开发者在自己喜…

提升Web3安全性和用户体验:元事务和加密技术的应用

在Web3中,去中心化应用程序(DApps)是一种基于区块链技术的应用程序,它们通过智能合约实现透明、安全、去中心化的业务逻辑。然而,DApps的使用门槛比传统的中心化应用程序更高,需要用户具备一定的技术知识&a…

工厂能耗管理系统解决方案

1、概述 随着碳达峰、碳中和成为政府工作主要任务,工厂作为能耗密集,用能情况较为复杂的大型建筑,有效的降低能源消耗,减少能源成本,避免用能过程中的“跑冒滴漏”现象,实施能效综合考评是个非常必要的管理…

C语言学习笔记 VScode设置C环境-06

目录 一、下载vscode软件 二、安装minGW软件 三、VS Code安装C/C插件 3.1 搜索并安装C/C插件 3.2 配置C/C环境 总结 一、下载vscode软件 在官网上下载最新的版本 Download Visual Studio Code - Mac, Linux, Windowshttps://code.visualstudio.com/download 二、安装minGW…

添加USB转串口设备驱动-迅为i.MX8M开发板

对于通过 USB 接口访问的模块,在 Linux 内核中集成 USB 驱动程序。我们需要配置内核选中支持 GSM 和 CDMA 模块的 USB 转串口驱动 > Device Drivers -> USB support (USB_SUPPORT [y]) -> USB Serial Converter support (USB_SERIAL [y]) -> USB driver…

2023 年第二届钉钉杯大学生大数据挑战赛初赛 初赛 A:智能手机用户监测数据分析 问题二分类与回归问题Python代码分析

2023 年第二届钉钉杯大学生大数据挑战赛初赛 初赛 A:智能手机用户监测数据分析 问题二分类与回归问题Python代码分析 相关链接 【2023 年第二届钉钉杯大学生大数据挑战赛初赛】 初赛 A:智能手机用户监测数据分析 问题一Python代码分析 【2023 年第二届…

day42-servlet下拉查询/单例模式

0目录 1.Servlet实现下拉查询(两表) 2.单例模式 1.实战 1.1 创建工程,准备环境... 1.2 接口 1.3 重写方法 1.4 servlet 1.5 list.jsp list.jsp详解 2.单例模式 2.1 饿汉模式:在程序加载时直接创建对象&#…

基于SpringBoot+Vue的摄影跟拍预定管理系统设计与实现(源码+lw+部署文档等)

博主介绍: 大家好,我是一名在Java圈混迹十余年的程序员,精通Java编程语言,同时也熟练掌握微信小程序、Python和Android等技术,能够为大家提供全方位的技术支持和交流。 我擅长在JavaWeb、SSH、SSM、SpringBoot等框架…

fastadmin 项目gitee管理

gitee创建一个仓库使用sourcetree等工具拉取代码使用phpstorm远程同步代码到本地设置忽略代码文件 注意:如果是直接把远程代码同步到本地,默认是你在 .gitignore中设置是无效的,代码一样会提交,需要先使用上面的截图去掉缓存&…

jmeter随记3:常用jmeter功能(附带场景)

常用jmeter功能(附带场景) 一、jmeter其他特性1、请求的接口有多个 且 域名相同2、 jmeter支持统一管理参数的设置a、创建HTTP Header Managerb、用户定义参数c、csv数据文件设置 3、接口a的返回值作为 接口b的入参a、 json提取器b、 正则表达式 4、if c…

小程序中vant-weapp时间选择使用方法

一、选择单个时间点&#xff1a; wxml&#xff1a; <van-celltitle"选择预约时间"value"{{ time }}"bind:click"onDisplay"/><van-calendarshow"{{ show }}"bind:close"onClose"bind:confirm"onConfirm"…

嵌入式Linux驱动开发——常见框架梳理

前言 本文主要介绍了Linux驱动开发中一些常用的驱动框架&#xff0c;platform、input、iic、spi等&#xff0c;硬件平台使用的是正点原子的imx6ull开发板。 一&#xff1a;Pinctrl子系统、Gpio子系统 不管什么框架最后都是要追溯到配置IO的电气属性和复用功能 如果要使用外部…

seatunnel hive source 未设置分隔符导致多个字段合并成一个的问题定位解决

seatunnel hive source 未设置分隔符导致多个字段没有切分全保存在一个字段中了,翻看源码发现分隔符是是通过delimiter设置的,只要设置这个delimiter","就可以了。 设置这个属性 delimiter“,” 他的默认值是\u0001,如果没有设置delimiter属性则会根据文件类型判断…

如何用3D格式转换工具HOOPS Exchange读取颜色和材料信息?

作为应用程序开发人员&#xff0c;非常希望导入部件的图形表示与它们在创作软件中的外观尽可能接近。外观可以在每个B-Rep面的基础上指定&#xff0c;而且&#xff0c;通过装配层次结构的特定路径可以在视觉外观上赋予父/子覆盖。HOOPS ExchangeHOOPS Exchange可捕获有关来自各…

介电陶瓷类材料介电测试

介电陶瓷类材料介电测试 介电陶瓷类材料介电测试 介电陶瓷又称电介质陶瓷。在电场作用下具有极化能力&#xff0c;且能在体内长期建立起电场的功能陶瓷&#xff0c;能承受较强的电场而不被击穿。它具有较高的介电常数、较低的介质损耗和适当的介电常数温度系数。用于各类电容…

办公室安全升级,如何保障人身财产安全?

视频监控&#xff0c;一种常见的安全措施&#xff0c;以监视和记录办公室内的活动。这项技术为企业提供了许多优势&#xff0c;包括保障员工和财产安全、帮助调查犯罪事件、提高业务管理效率以及应对突发事件。 因此&#xff0c;在合理范围内应用视频监控&#xff0c;将为企业提…

Pytorch从入门到精通:二、dataset与datalodar

数据是深度学习的基础&#xff0c;一般来说&#xff0c;数据量越大&#xff0c;训练出来的模型也越强大。如果现在有了一些数据&#xff0c;该怎么把这些数据加到模型中呢&#xff1f;Pytorch中提供了dataset和dataloader&#xff0c;让我们一起来学习一下吧&#xff0c;datase…