You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

94 lines
5.7 KiB
Markdown

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# uniapp-vue3-ts-scaffold
#### 一、介绍
本项目是一个uni-app + Vue3 + Typescript + Pinia + Vite + Tailwind CSS + uv-ui开发脚手架下载本项目后可快速开始界面开发无须再进行复杂繁琐的配置。
#### 二、技术栈简介
##### 2.1 uni-app
uni-app 是一个使用 Vue.js 开发所有前端应用的框架开发者编写一套代码可发布到iOS、Android、Web响应式、以及各种小程序微信/支付宝/百度/头条/飞书/QQ/快手/钉钉/淘宝)、快应用等多个平台。
uni-app官方文档[https://uniapp.dcloud.net.cn/](https://uniapp.dcloud.net.cn/)
##### 2.2 vue3
Vue 3 是一个流行的开源JavaScript框架用于构建用户界面和单页面应用。Vue 3与Vue 2的主要区别包括
- 构建Vue 3使用monorepo架构更容易管理和维护。
- APIVue 3引入了新的组合式API它提供了更灵活的代码组织方式。
- 性能Vue 3提供了更好的性能包括更快的渲染速度和更小的打包大小。
- TypeScriptVue 3提供了更好的TypeScript支持。
Vue3官方文档[https://cn.vuejs.org/](https://cn.vuejs.org/)
##### 2.3 TypeScript
TypeScript是由 Microsoft 开发并维护的开源编程语言,它是在 JavaScript的基础上增加了静态类型、类和接口等特性从而将其提升为一个功能更为丰富的开发平台。TypeScript 通过编译器将 TypeScript 代码转换为 JavaScript 代码,确保这些代码能够在支持 JavaScript 的各种设备和平台上运行。这种设计允许开发者利用 TypeScript 的静态类型检查以及类、接口和其他 OOP 功能来构建大型、复杂的 Web 应用,同时享受 JavaScript 本身的高灵活性和易于使用的特点。
Typescript官网文档[https://www.typescriptlang.org/](https://www.typescriptlang.org/)
##### 2.4 Pinia
Pinia 是 Vue 的存储库,它允许您跨组件/页面共享状态。 如果您熟悉 Composition API您可能会认为您已经可以通过一个简单的 export const state = reactive({}). 这对于单页应用程序来说是正确的,但如果它是服务器端呈现的,会使您的应用程序暴露于安全漏洞。 但即使在小型单页应用程序中,您也可以从使用 Pinia 中获得很多好处:
- dev-tools 支持
- 跟踪动作、突变的时间线
- Store 出现在使用它们的组件中
- time travel 和 更容易的调试
- 热模块更换
- 在不重新加载页面的情况下修改您的 Store
- 在开发时保持任何现有状态
- 插件:使用插件扩展 Pinia 功能
- 为 JS 用户提供适当的 TypeScript 支持或 autocompletion
- 服务器端渲染支持
Pinia 目前也已经是 vue 官方正式的状态库。适用于 vue2 和 vue3。可以简单的理解成 Pinia 就是 Vuex5。也就是说 Vue3 项目建议使用Pinia。
Pinia官方文档[https://pinia.web3doc.top/](https://pinia.web3doc.top/)
##### 2.5 Tailwind CSS
Tailwind是一个原子类方式命名的CSS工具集。Tailwind CSS 是一个功能类优先的 CSS 框架,它集成了诸如 flex, pt-4, text-center 和 rotate-90 这样的的类它们能直接在脚本标记语言中组合起来构建出任何设计。它将所有的css属性全部封装成语义化的类比如你想要一个float:left它已经帮你封装好了你直接使用一个float-left就可以。需要一个宽度为12像素只需要写w-3就可以。
使用tailwindcss极大的减少代码量能轻松完成响应式设计不需要再写单独的css也不需要再为class取个什么名字而苦恼。
tailwindcss官方文档[https://tailwindcss.com/](https://tailwindcss.com/)
##### 2.6 uv-ui
说到uv-ui就不得不先从uni-ui和uView说起。uni-ui、uView和uv-ui都是uni-app生态下专用的组件库。
- uni-ui 是DCloud官方提供的跨端ui库它是基于vue组件的、flex布局的、无dom的跨全端ui框架。
但此组件库组件相对较少,设计风格略显滞后,笔者本人并不是很喜欢。
uni-ui官方文档[https://uniapp.dcloud.net.cn/component/uniui/uni-ui.html](https://uniapp.dcloud.net.cn/component/uniui/uni-ui.html)
- uView从2018年初发布以来是uni-app生态最优秀的UI框架全面的组件和便捷的工具会让您信手拈来如鱼得水。uView2.0全面兼容了uni-app生态下的nvue开发模式对1.x进行了架构重构细节和性能都有极大提升。
但uView是基于vue2实现在vue3框架下使用会存在诸多问题。
uView官方文档[https://uviewui.com/](https://uviewui.com/)
- uv-ui是兼容vue3+2、nvue、app、h5、多端小程序的uni-app生态框架大部分组件基于uView2.x在经过改进后全面支持vue3部分组件做了进一步的优化支持单独导入方便开发者选择导入需要的组件。
uv-ui官方文档[https://www.uvui.cn/](https://www.uvui.cn/)
结合本项目的实际情况笔者最终选择uv-ui作为项目的ui库。
##### 2.7 vite
Vite是Vue的作者尤雨溪开发的Web开发构建工具它是一个基于浏览器原生ES模块导入的开发服务器在开发环境下利用浏览器去解析import在服务器端按需编译返回完全跳过了打包这个概念服务器随启随用。同时不仅对Vue文件提供了支持还支持热更新而且热更新的速度不会随着模块增多而变慢。Vue3默认使用Vite作为项目脚手架工具。
Vite官方文档[https://vitejs.cn/](https://vitejs.cn/)
#### 三、创建过程
开发者也可参考此文章手动搭建自己的脚手架工程。
[使用命令行方式搭建uni-app + Vue3 + Typescript + Pinia + Vite + Tailwind CSS + uv-ui开发脚手架](https://blog.csdn.net/kingslave1/article/details/135454239)