我用前端【最新】技术栈完成了一个生产标准的项目【Vue3 + TS + Vite + Pinia + Windicss】

2022-10-26 08:34:47 浏览数 (3)

前言

聊一下自己使用这些技术的一些体会与心得,不做具体的搭建过程了,说一下工程的设计思想与遇到了哪些问题。

项目背景

最近一直在忙一个EPR系统的开发,新项目之前团队的技术栈基本停留于Vue2 Js Webpack Vuex 上,但是Vue生态其实已经可以说进入了次时代,虽然我个人其实不是很倡议盲目的去追赶新的框架,因为我觉得先把自己手头的技术掌握扎实才是重中之重,团队的同学绝大多数是一些基本的开发程序员,初级较多。但是学习还是有必要的,那么学习后就需要一个成熟的项目,体系完整的项目来巩固一下自己学的知识,借此机会,向部门CTO提出使用Vue3 TS Vite Pinia Windicss NavieUI进行新项目的开发,审批通过!

设计

团队协作

Plugin

有效利用esLintprettierhusky以及commitizen,因为使用了TypeScript esLint所以对代码的书写规范、类型、接口的使用必须有很高的要求,如果使用了不当的类型或者书写不规范,第一会导致代码提交到远程再到其他同学本地,会出现很多的error,对这种情况,我们可以在git提交的钩子中进行代码的per-commit,在这个阶段,主要是进行lint&typecheck操作,而且在进行typecheck的时候一定要加noEmit,禁止有error的代码提交,同时使用commitizen规范git commit的信息,遵守augular规范。

Editor

编辑器集体更换为VSCode,团队中有使用webstorm的同学,也强制更换编辑器,如果进行Vue3的开发,一定要记得禁用vetur插件,使用volar进行开发。

UI

因为项目比较着急,所以没有让UI出图,这个对我来说,确实不是什么大问题「手动狗头」,因为自己也有过很多次脱离UI进行开发的经验,虽然不如专业UI设计师做出来好看,但是也还不错,得到了部门领导&老板的大力认可,放一个 栗子,这个项目是用Nuxtjs搞得,嘻嘻。但是之前都是自己去弄,这次因为比较着急,而且工作内容比较多,所以必须得拉上小伙伴一起了,就面临了一个问题,那就是如何统一设计风格的问题,于是想到了tailwindcss,调研的过程中,又发现了windicss,相对于前者,后者的体积更小,但是文档不太友好,因为...你完全可以参照前者的文档,而是用后者进行开发,哈哈,使用windicss&NavieUI统一好theme,给伙伴们的要求是,不要在工程中自己写css,因为7个人一块开发一个没有UI稿的项目,每个人的想法都不同。到现在提测为止,项目中没有出现过component css,整体页面风格十分统一。

项目工程

assets

存放一些公共的Image & SVG 等资源

components.common

全局公共组件

components.business

全局业务组件

const.commen

全局公共常量

const.business

全局业务常量

directives.xxx.ts

自定义指令【permissions】【network】...

enum

全局枚举值

filter

全局过滤函数(Vue3没有提供filter)

hooks.common

全局逻辑复用

hooks.business

业务逻辑复用

layouts

布局组件

service.api

API

service.request

axios请求拦截器

typings.xxx.d.ts

全局namespace & interface

utils

工具库

结语

以上就是项目部分的设计,主要是目录结构,具体的代码太多了,没有时间写,等有时间了写一个系列吧。

预览

LIST

FORM

0 人点赞