【Midway+Vue3】前后端实战,从编码到部署,写一个绝美 todolist

本文主要是介绍【Midway+Vue3】前后端实战,从编码到部署,写一个绝美 todolist,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

项目预览

在这里插入图片描述

技术选型

在这里插入图片描述

前端

  1. vue3、typescript、setup 语法的基本使用
  2. vue-router4、pinia 的使用
  3. axios + typescript 的请求封装
  4. jwt、refresh token 的使用和处理
  5. tailwind css 和 naive-ui 的使用,并接入暗黑模式
  6. vue3-dnd 结合 react-dnd-html5-backend 进行拖拽
  7. 腾讯云 cos 的使用,获取服务端下发的临时密钥并进行头像上传
  8. vite 的使用,图片压缩插件的使用
  9. 结合 node-ssh 和 ali-oss 编写服务器部署脚本 和 阿里云 oss 部署脚本

后端

  1. midway 框架的使用
  2. typeorm + mysql 的增删改查、事务的使用
  3. redis 的使用,负责存储短信验证码
  4. 接入 腾讯云 sms 短信服务
  5. 接入 腾讯云 cos 并下发临时密钥
  6. passport 的身份验证库的使用,并接入 localStrategy 本地策略
  7. jwt 中间件、全局请求响应中间件、全局异常处理器的编写
  8. 多环境部署,测试环境部署至服务器,生产环境部署至 Serverless

部署

  1. 接入 gitlab ci/cd,服务器安装 gitlab runner
  2. gitlab webhooks 的使用,负责从镜像仓库中拉取最新镜像
  3. Dockerfile、docker-compose.yml、.gitlab-ci.yml 的编写
  4. docker 的使用,nginx 的常用配置(前端视角)
  5. docker compose 的使用,编排了 app(业务)、redis、mysql 三个容器
  6. 创建阿里云私有镜像仓库,并进行镜像的 push 和 pull

体验地址

测试环境
http://dev.tutulist.cn

生产环境
https://tutulist.cn

代码地址

前端代码

https://github.com/bravehot/tutulist-web-app

后端代码

https://github.com/bravehot/tutulist-web-server

webhooks

https://github.com/bravehot/tutulist-gitlab-webhooks

文档地址

https://www.yuque.com/aiyouwai/tutulist/gam1z6

最新的文档都已经更新在语雀知识库中,掘金后续也会相继更新,文档中记录了前后端开发到部署的所有内容,并以篇章的形式进行展示。 大家选取自己感兴趣的部分查阅即可

在这里插入图片描述

注意

文档中没有列出具体的业务代码。只提供了一些功能的实现思路和部分伪代码,关心代码具体实现的同学请查阅 Github

下一篇

# 【Midway+Vue3】初始化一个 Vue 项目 (前端篇 01):

这篇关于【Midway+Vue3】前后端实战,从编码到部署,写一个绝美 todolist的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/298951

相关文章

SpringBoot中四种AOP实战应用场景及代码实现

《SpringBoot中四种AOP实战应用场景及代码实现》面向切面编程(AOP)是Spring框架的核心功能之一,它通过预编译和运行期动态代理实现程序功能的统一维护,在SpringBoot应用中,AO... 目录引言场景一:日志记录与性能监控业务需求实现方案使用示例扩展:MDC实现请求跟踪场景二:权限控制与

解决IDEA报错:编码GBK的不可映射字符问题

《解决IDEA报错:编码GBK的不可映射字符问题》:本文主要介绍解决IDEA报错:编码GBK的不可映射字符问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录IDEA报错:编码GBK的不可映射字符终端软件问题描述原因分析解决方案方法1:将命令改为方法2:右下jav

HTML5中的Microdata与历史记录管理详解

《HTML5中的Microdata与历史记录管理详解》Microdata作为HTML5新增的一个特性,它允许开发者在HTML文档中添加更多的语义信息,以便于搜索引擎和浏览器更好地理解页面内容,本文将探... 目录html5中的Mijscrodata与历史记录管理背景简介html5中的Microdata使用M

html5的响应式布局的方法示例详解

《html5的响应式布局的方法示例详解》:本文主要介绍了HTML5中使用媒体查询和Flexbox进行响应式布局的方法,简要介绍了CSSGrid布局的基础知识和如何实现自动换行的网格布局,详细内容请阅读本文,希望能对你有所帮助... 一 使用媒体查询响应式布局        使用的参数@media这是常用的

HTML5表格语法格式详解

《HTML5表格语法格式详解》在HTML语法中,表格主要通过table、tr和td3个标签构成,本文通过实例代码讲解HTML5表格语法格式,感兴趣的朋友一起看看吧... 目录一、表格1.表格语法格式2.表格属性 3.例子二、不规则表格1.跨行2.跨列3.例子一、表格在html语法中,表格主要通过< tab

Vue3组件中getCurrentInstance()获取App实例,但是返回null的解决方案

《Vue3组件中getCurrentInstance()获取App实例,但是返回null的解决方案》:本文主要介绍Vue3组件中getCurrentInstance()获取App实例,但是返回nu... 目录vue3组件中getCurrentInstajavascriptnce()获取App实例,但是返回n

Python列表去重的4种核心方法与实战指南详解

《Python列表去重的4种核心方法与实战指南详解》在Python开发中,处理列表数据时经常需要去除重复元素,本文将详细介绍4种最实用的列表去重方法,有需要的小伙伴可以根据自己的需要进行选择... 目录方法1:集合(set)去重法(最快速)方法2:顺序遍历法(保持顺序)方法3:副本删除法(原地修改)方法4:

在Spring Boot中浅尝内存泄漏的实战记录

《在SpringBoot中浅尝内存泄漏的实战记录》本文给大家分享在SpringBoot中浅尝内存泄漏的实战记录,结合实例代码给大家介绍的非常详细,感兴趣的朋友一起看看吧... 目录使用静态集合持有对象引用,阻止GC回收关键点:可执行代码:验证:1,运行程序(启动时添加JVM参数限制堆大小):2,访问 htt

JS+HTML实现在线图片水印添加工具

《JS+HTML实现在线图片水印添加工具》在社交媒体和内容创作日益频繁的今天,如何保护原创内容、展示品牌身份成了一个不得不面对的问题,本文将实现一个完全基于HTML+CSS构建的现代化图片水印在线工具... 目录概述功能亮点使用方法技术解析延伸思考运行效果项目源码下载总结概述在社交媒体和内容创作日益频繁的

前端CSS Grid 布局示例详解

《前端CSSGrid布局示例详解》CSSGrid是一种二维布局系统,可以同时控制行和列,相比Flex(一维布局),更适合用在整体页面布局或复杂模块结构中,:本文主要介绍前端CSSGri... 目录css Grid 布局详解(通俗易懂版)一、概述二、基础概念三、创建 Grid 容器四、定义网格行和列五、设置行