vite + vue3 + ts 移动端开箱即用现代开发模板

中文 | English

SouthernWind https://blog.csdn.net/nanchen_J?type=blog

sw-template

vite + vue3 + ts 移动端开箱即用现代开发模板



特点 🐶

  1. Vite 的
  2. Vue3 的
  3. 文件路由
  4. 布局系统
  5. Mock 后续支持
  6. Api 自动引入
  7. 组件自动引入
  8. VueUse 支持
  9. TypeScript 的
  10. Tailwind css 的
  11. 暗黑模式待开发
  12. pinia 状态管理
  13. pnpm 包管理器
  14. 路径别名支持
  15. 环境变量配置支持
  16. defineOptions 支持
  17. defineModel 支持
  18. 开箱即用的 axios 请求封装
  19. 支持ESlint,Prettier


克隆模板 🦕

  1. Github
git clone
  1. Gitee
git clone git@gitee.com:dishait/tov-template.git


node 版本推荐 🐎

因为该模板完全面向现代,所以推荐使用 node 当前的长期维护版本 v20


使用 🐂

该模板仅支持 pnpm 包管理器 👉 安装教程

  1. 安装依赖
pnpm install
  1. 开发
pnpm dev
  1. 预览
pnpm preview# 开启 host
pnpm preview:host# 自动打开浏览器
pnpm preview:open
  1. 打包
pnpm build
  1. 依赖更新
# 依赖版本更新
pnpm deps:fresh
# 以上命令仅对包信息 package.json 进行写入,需要重新执行包安装命令
pnpm i
  1. 代码规范校验
pnpm lint# 校验时修复
pnpm lint:fix


动机 😲

为什么要做这个 模板 呢?

  1. 为下次开发节省浪费在配置上的时间
  2. 结合主流插件整合现代开发架构,提高开发效率


使用场景 ⚖️

什么时候你应该用?

  1. 不想浪费时间在项目配置上
  2. 希望尝试用更现代的方式开发 web 应用,提高开发效率


组织 🦔

欢迎关注 Southern Wind

  • 官网
  • Gitee
  • Github
  • CSDN
  • 掘金


详情 🐳

1. Vite 的

该模板采用 vite 作为构建工具,你可以在根目录下的
vite.config.ts 对项目的构建进行配置。

对于众多主流插件的引入和繁杂配置已经整合到根目录下的预设 presets
中,大多数情况下你是不需要重新对它们进行配置的。


2. Vue3 的

基于Vue3框架开发当前版本为 3.4.29
更新到最新版请使用以下命令

pnpm install vue@latest

3. 文件路由

目录结构即路由。

eg:

  • src/views/index.vue => /
  • src/views/[...notFound].vue => 404 路由

4. 布局系统

默认布局

App.vue 将作为默认布局。

<!-- App.vue -->
<template>我是默认布局<router-view /><!-- 页面视图出口 -->
</template>

此时 src/views/index.vue

<!-- src/views/index.vue -->
<template><div>我是首页</div>
</template>

路由到 /时,页面将渲染

我是默认布局 我是首页

此时 src/views/about.vue

<!-- src/views/about.vue -->
<template><div>我是关于页</div>
</template>

路由到 /about 时,页面将渲染

我是默认布局 我是关于页

非默认布局

随便创建一个 src/layouts/custom.vue

<!-- src/layouts/custom.vue -->
<template>我是非默认布局custom<router-view /><!-- 页面视图出口 -->
</template>

此时 src/views/index.vue

<!-- src/views/index.vue -->
<template><div>我是首页</div>
</template><!-- 添加自定义块 👇 -->
<route lang="json"> { "meta": { "layout": "custom" } } </route>

此时路由到 /, 页面将渲染

我是非默认布局custom 我是首页

具体可见 👉
vite-plugin-vue-meta-layouts


5. Mock 后续支持

6. Api 自动引入

原本 vueapi 需要自行 import

import { computed, ref } from 'vue'
const count = ref(0)
const doubled = computed(() => count.value * 2)

现在可以直接使用。

const count = ref(0)
const doubled = computed(() => count.value * 2)

而且上边的 api 是按需自动引入的。

目前模板支持自动引入 api 的库列表 👉

  • vue
  • pinia
  • vue-router
  • @vueuse/core

只要确保已经安装依赖即可,具体可见 👉
vite-auto-import-resolvers,

  1. src/api 也是自动按需导入,与上述类似

具体可见 👉
unplugin-auto-import。


7. 组件自动引入

原来需要 import

<!-- src/views/index.vue -->
<script setup lang="ts">import Hello from '../components/Hello.vue'
</script><template><Hello />
</template>

现在只要在 src/components 下定义的组件都将会按需引入,即 import 是不需要的。

<!-- src/views/index.vue -->
<template><Hello />
</template>

8. VueUse 支持

Vue 组合式工具集
基础 Vue 组合式工具的集合

9. TypeScript 的

支持TypeScript


10. Tailwind css 的

Tailwindcss 是一个开发中速度更快的 原子css 库。

直接在模板中用就行了,不需要配置。

<template><div class="bg-red-500 text-white">我是红色背景的白色文本</div>
</template>

上述模板将渲染红色背景白色的字。

具体可见 👉 tailwindcss


11. 暗黑模式待完善

具体可见 👉 vue-dark-switch


12. pinia 状态管理

pinia 是下一代的状态管理库,比 vuex 更简单,ts 支持更好。

你可以在 src/stores 中进行状态的定义。

例如创建 src/stores/counter.ts 👇

// src/stores/counter.ts
import { defineStore } from 'pinia'export const useCounterStore = defineStore('counter', {state() {return { count: 0 }},actions: {inc() {this.count++}}
})

定义完后在 setup 中直接使用即可

<!-- src/views/index.vue -->
<script setup lang="ts">const Counter = useCounterStore()
<script><template><div @click="Counter.inc">{{Counter.count}}</div>
</template>

更多具体使用可见 👉 pinia


13. pnpm 包管理器

pnpm 是非常优秀的包管理器,更快、更节省空间、更合理。

具体可见 👉 pnpm


14. 路径别名支持

~ 或者 @ 路径将被导向项目的 src 目录,同时有更好的类型提示

<!-- src/views/index.vue -->
<script lang="ts" setup>import { useDarks } from '@/composables/dark'// 等价于// import { useDarks } from "../composables/dark"
</script>


15. 环境变量配置支持

根目录下的 .env 用来对项目进行环境变量配置。



16. defineOptions 支持

<script setup lang="ts">// 定义额外的 optionsdefineOptions({name: 'Foo'})
</script>


17. [defineModel 支持] 3.4+ (https://cn.vuejs.org/api/sfc-script-setup.html#definemodel)

// 声明 "modelValue" prop,由父组件通过 v-model 使用
const model = defineModel()
// 或者:声明带选项的 "modelValue" prop
const model = defineModel({ type: String })// 在被修改时,触发 "update:modelValue" 事件
model.value = 'hello'// 声明 "count" prop,由父组件通过 v-model:count 使用
const count = defineModel('count')
// 或者:声明带选项的 "count" prop
const count = defineModel('count', { type: Number, default: 0 })function inc() {// 在被修改时,触发 "update:count" 事件count.value++
}
// 子组件:
const model = defineModel({ default: 1 })// 父组件
const myRef = ref()
<Child v-model="myRef"></Child>

更多详情请参考 👉defineModel()

18. 开箱即用的 axios 请求封装

二次封装,开箱即用



19. 支持ESlint,Prettier

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

Gitlab实现多项目触发式自动CICD

工作中可能会遇到这种场景&#xff0c;存在上游项目A和下游项目B&#xff0c;项目B的功能依赖项目A&#xff08;比如B负责日志解析&#xff0c;A是日志描述语言代码&#xff09;&#xff0c;这种相互依赖的项目更新流程一般如下&#xff1a; A项目更新&#xff0c;通知B项目开发…

好用的电脑监控软件推荐!分享六个企业必备的电脑监控软件,赶紧Get吧!

数字化办公日益普及&#xff0c;由于工作的需要&#xff0c;几乎每个员工都有自己的电脑&#xff0c;并且大多数电脑都接入了互联网。 这使得电脑监控软件&#xff0c;变为企业管理中必不可少的一部分&#xff01;它们不仅能够帮助管理者实时了解员工的工作状态&#xff0c;提…

充电宝什么品牌比较好用?2024年最值得推荐充电宝品牌!

近年来&#xff0c;随着电子设备使用需求的增加&#xff0c;充电宝市场呈现出蓬勃发展的态势。优秀的充电宝产品不仅能够提供稳定的充电速度&#xff0c;还具备方便携带的体验&#xff0c;深受用户喜爱。然而&#xff0c;面对市场上众多品牌和型号的选择&#xff0c;如何找到最…

Linux云计算 |【第二阶段】SHELL-DAY5

主要内容&#xff1a; awk命令、内置变量&#xff08;FS、$0、$1、$2、NF、NR&#xff09;、过滤时机&#xff08;BEGIN{}、{}、END{}&#xff09;、处理条件&#xff08;正则、&&、||、~\!~、等&#xff09;、awk数组、监控脚本、安全检测脚本 一、awk介绍 awk 是一…

基于微信平台的旅游出行必备商城小程序+ssm(lw+演示+源码+运行)

摘 要 随着社会的发展&#xff0c;社会的方方面面都在利用信息化时代的优势。互联网的优势和普及使得各种系统的开发成为必需。 本文以实际运用为开发背景&#xff0c;运用软件工程原理和开发方法&#xff0c;它主要是采用java语言技术和mysql数据库来完成对系统的设计。整个…

影视直冲?对接卡券特权充值接口对于用户来说有什么优势?

对用户来说有哪些优势&#xff1a; 便利性&#xff1a;用户可以直接在应用程序或网站上充值和使用卡券&#xff0c;无需通过多个平台或渠道&#xff0c;提高了用户体验。实时性&#xff1a;卡券充值和使用状态可以实时更新&#xff0c;用户可以立即看到余额变化和卡券状态。安…

移动硬盘无法读取?别慌!这些方法助你恢复数据!

在我们的日常工作和生活中&#xff0c;移动硬盘作为重要的数据存储工具&#xff0c;承载着珍贵资料。然而&#xff0c;移动硬盘无法被电脑读取的情况时有发生&#xff0c;令人焦急。别慌&#xff0c;下面为大家详细介绍恢复移动硬盘数据的有效方法。 一、检查硬件连接和驱动问题…

麒麟桌面操作系统:查看最近安装与卸载的软件包

麒麟桌面操作系统&#xff1a;查看最近安装与卸载的软件包 1、查看最近安装的deb包2、查看最近卸载的deb包 &#x1f496;The Begin&#x1f496;点点关注&#xff0c;收藏不迷路&#x1f496; 在麒麟桌面操作系统中&#xff0c;快速查看最近安装与卸载的软件包非常简单。这里有…

【多因子分组箱线图】:附Origin详细画图教程

目录 No.1 理解箱线图 1 什么是箱线图 2 箱线图的组成 No.2 画图流程 1 导入数据并绘图 2 设置绘图细节 3 设置坐标轴 4 效果图 No.1 理解箱线图 1 什么是箱线图 箱线图&#xff0c;又称箱形图、盒须图或盒式图&#xff0c;用于体现数据分散情况的统计图。在视觉上辅助…

大数据新视界 --大数据大厂之数据挖掘入门:用 R 语言开启数据宝藏的探索之旅

&#x1f496;&#x1f496;&#x1f496;亲爱的朋友们&#xff0c;热烈欢迎你们来到 青云交的博客&#xff01;能与你们在此邂逅&#xff0c;我满心欢喜&#xff0c;深感无比荣幸。在这个瞬息万变的时代&#xff0c;我们每个人都在苦苦追寻一处能让心灵安然栖息的港湾。而 我的…

猜数-while-python

题目要求&#xff1a; 设置一个范围1-100的随机整数变量&#xff0c;通过while循环&#xff0c;诶和input语句&#xff0c;判断输入的数字是否等于随机数 无限次机会&#xff0c;直到猜中为止每一次不猜中都&#xff0c;会提示大了小了猜完数字后&#xff0c;提示裁了几次 imp…

干耳朵要掏吗?高性价比的可视挖耳勺推荐

干耳朵的耳朵属于比较干爽的内部环境&#xff0c;如果耳道中耳屎过多建议使用专业的工具来掏耳朵。在掏耳的过程建议用可视挖耳勺&#xff0c;可以通过内窥镜来实时查看耳道内的情况&#xff0c;更加安全和精准。但市面上的可视挖耳勺枪品质良莠不齐&#xff0c;一些黑心商家只…

此mac无法连接Apple媒体服务,因为“”出现问题。

出现问题&#xff1a; 这是因为mac登陆过别人的appId下载过软件&#xff0c;但是没有完全退出登陆 解决 打开偏好设置&#xff0c;点击头像&#xff0c;点击媒体与已购项目&#xff0c;能看到弹框内AppleID登陆的应用&#xff0c;打开对应的那个应用&#xff0c;我这里是音…

Linux(CentOS8)服务器安装RabbitMQ

我安装了很久都没有成功, 各种问题, 每次的异常都不一样, 现将成功安装过程做个总结 安装前工作 确保已经安装了一些基础工具和组件库 下载安装包 https://www.erlang.org/patches/otp-24.3.4.5 https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.9.15/ra…

后台数据库查询记录

一、根据日期按天分组查询倒序 //mapper public List<Date> dateByPatientId(FollowScheme followScheme); <select id"dateByPatientId" parameterType"com.ruoyi.follow.domain.FollowScheme" resultType"java.util.Date">SELECT…

视频推镜拍摄SDK解决方案,创新短视频玩法

在当今社交媒体盛行的时代&#xff0c;短视频已成为人们分享生活、展示创意的重要方式。美摄科技推出的视频推镜拍摄SDK解决方案&#xff0c;为用户提供了一种全新的短视频创作体验。 一、什么是视频推镜拍摄SDK解决方案&#xff1f; 美摄科技的视频推镜拍摄SDK解决方案是一种…

攻防演练篇:攻防演练场景中面临的常见加密威胁-HTTP隐蔽隧道

1 概述 在网络安全领域&#xff0c;隐蔽隧道是一种基于主流常规协议将恶意流量伪装成正常通信起到夹带偷传数据、下发控制指令等作用&#xff0c;同时对数据进行加密以最大限度的规避网络安全设备检测的传输技术。由于隐蔽隧道更容易绕过网络安全设备的检测&#xff0c;因此黑…

scratch中秋节——孔明灯祈福

小虎鲸Scratch资源站-免费少儿编程Scratch作品源码,素材,教程分享网站! 中秋节是中国的传统佳节&#xff0c;象征着团圆与美好。在这个特别的节日里&#xff0c;除了赏月、吃月饼&#xff0c;放飞孔明灯也是一种独特的祈福方式。而如今&#xff0c;你可以在小虎鲸Scratch资源站…

51.【C语言】字符函数和字符串函数(strcpy函数)

承接50.【C语言】字符函数和字符串函数(上) 点我跳转 5.strcpy函数 *简单使用 cplusplus的介绍 点我跳转 strcpy:string copy 翻译: 复制字符串 复制由source指向的C字符串到由destionation指向的数组中,包括\0(终止0字符)(在\0那里停止复制) 为了防止溢出,由destionation指…

CDGA|如何实施非常精准的数据治理策略?

在信息化高速发展的今天&#xff0c;数据已成为企业最重要的生产要素之一&#xff0c;其价值日益凸显。然而&#xff0c;随着数据量的爆炸性增长&#xff0c;如何精准地管理和控制数据成为企业亟待解决的问题。本文将从设定目标、制定策略、组织结构建设、制度流程规范以及技术…