从 0 搭建 Vite 3 + Vue 3 Js版 前端工程化项目
之前分享过一篇vue3+ts+vite构建工程化项目的文章,针对小的开发团队追求开发速度,不想使用ts想继续使用js,所以就记录一下从0搭建一个vite+vue3+js的前端项目,做记录分享。
技术栈
-
Vite 3 - 构建工具
-
Vue 3
-
Vue Router - 官方路由管理器
-
Pinia - Vue Store你也可以选择vuex
-
element-plus - UI组件库
-
Sass - CSS 预处理器
-
Axios - 一个基于 promise 的网络请求库,可以用于浏览器和 node.js
-
Vscode - 一个还挺好用的开发工具
一、项目的基础搭建
1、构建有多种方式,本次示例选择vue 官方脚手架工具create-vue 构建的
(1)使用vite的方式,构建一个基础模板
# npm 6.x
npm create vite@latest my-vue-app --template vue# npm 7+, extra double-dash is needed:
npm create vite@latest my-vue-app -- --template vue# yarn
yarn create vite my-vue-app --template vue# pnpm
pnpm create vite my-vue-app --template vue
(2)使用vue官方脚手架,本教程使用此方式
npm init vue@latest

二、安装UI组件库
安装css预处理器sass
npm install -D sass
或
npm add -D sass
1、在项目中安装element-plus
# NPM
$ npm install element-plus --save# Yarn
$ yarn add element-plus# pnpm
$ pnpm install element-plus
2、在mian.ts中引入并配置element-plus(完整引入)element-plus连接
import { createApp } from "vue";
import { createPinia } from "pinia";
import ElementPlus from "element-plus";
import "element-plus/dist/index.css";
import App from "./App.vue";
import router from "./router";import "./assets/main.css";const app = createApp(App);app.use(createPinia());
app.use(router);app.use(ElementPlus);app.mount("#app");
3、按需导入,自动导入(推荐,此教程使用此方法)以下摘自element
首先你需要安装unplugin-vue-components 和 unplugin-auto-import这两款插件
npm install -D unplugin-vue-components unplugin-auto-import
然后把下列代码插入到你的 Vite 或 Webpack 的配置文件中
Vite
// vite.config.ts
import { defineConfig } from 'vite'
import AutoImport from 'unplugin-auto-import/vite'
import Components from 'unplugin-vue-components/vite'
import { ElementPlusResolver } from 'unplugin-vue-components/resolvers'export default defineConfig({// ...plugins: [// ...AutoImport({resolvers: [ElementPlusResolver()],}),Components({resolvers: [ElementPlusResolver()],}),],
})
4、在组件中使用
<template><div class="about"><h1>This is an about page</h1><el-button type="primary" @click="alertFun">Primary</el-button><el-button type="success">Success</el-button></div><el-dialog v-model="dialogVisible" title="Tips" width="30%" :before-close="handleClose"><span>This is a message</span><template #footer><span class="dialog-footer"><el-button @click="dialogVisible = false">Cancel</el-button><el-button type="primary" @click="dialogVisible = false">Confirm</el-button></span></template></el-dialog>
</template>
<script setup>
let dialogVisible = ref(false)
const handleClose = () => {ElMessageBox.confirm('Are you sure to close this dialog?').then(() => {done()}).catch(() => {// catch error})
}
const alertFun = () => {ElMessage({message: 'Congrats, this is a success message.',type: 'success',})dialogVisible.value = true
}
</script>
<style>
@media (min-width: 1024px) {.about {min-height: 100vh;display: flex;align-items: center;}
}
</style>
效果:

5、全局配置elementPlus size 和 zIndex 语言等
<template><!-- 汉化 element --><el-config-provider :locale="zhCn" :size="elSize" :z-index="zIndex"><RouterView /></el-config-provider>
</template><script setup>
import zhCn from "element-plus/es/locale/lang/zh-cn";
const zIndex = 3000, elSize = 'default';</script>
<style scoped></style>
三、安装自动导入插件
相关文章:
从 0 搭建 Vite 3 + Vue 3 Js版 前端工程化项目
之前分享过一篇vue3+ts+vite构建工程化项目的文章,针对小的开发团队追求开发速度,不想使用ts想继续使用js,所以就记录一下从0搭建一个vite+vue3+js的前端项目,做记录分享。 技术栈 Vite 3 - 构建工具 Vue 3 Vue Router - 官方路由管理器 Pinia - Vue Store你也可以选择vue…...
【论文阅读笔记】Smil: Multimodal learning with severely missing modality
Ma M, Ren J, Zhao L, et al. Smil: Multimodal learning with severely missing modality[C]//Proceedings of the AAAI Conference on Artificial Intelligence. 2021, 35(3): 2302-2310.[开源] 本文的核心思想是探讨和解决多模态学习中的一个重要问题:在训练和测…...
在Windows系统上安装git-Git的过程记录
01-上git的官网下载git的windows安装版本 下载页面链接: https://git-scm.com/downloads 选择Standalone Installer的版本进行下载: 这里给大家一全git-2.43.0的百度网盘下载链接: https://pan.baidu.com/s/11HwNTCZmtSWj0VG2x60HIA?pwdut…...
qt QString常用方法
1. QString 尾部拼接,尾部插入字符.调用append()函数.同时,QString字符串直接用加号 也可以进行拼接. QString s "我的女神";s s "刘亦菲";s "最近可好?";s.append("你跑哪儿去了?");//拼接结果: 我的女神刘亦菲最近可好?你跑…...
吴恩达《机器学习》10-6-10-7:学习曲线、决定下一步做什么
一、学习曲线 1. 学习曲线概述 学习曲线将训练集误差和交叉验证集误差作为训练集实例数量(m)的函数绘制而成。这意味着从较少的数据开始,逐渐增加训练集的实例数量。该方法的核心思想在于,当训练较少数据时,模型可能…...
分子骨架跃迁工具-DiffHopp 评测
一、文章背景介绍 DiffHopp模型发表在ICML 2023 Workshop on Computational Biology(简称:2023 ICML-WCB)上的文章。第一作者是剑桥计算机系的Jos Torge。 DiffHopp是一个专门针对骨架跃迁任务而训练的E3等变条件扩散模型。此外,…...
MySQL双主双从数据库集群搭建
1 引言 在之前的文章中提到过相关搭建方法,具体请参考《MySQL主从数据库搭建》这篇文章,本文主要讲述双主双从,双主多从集群的搭建方式。 这里要问一个问题,为什么MySQL要搭建数据库集群呢?我想应该有以下几点原因&…...
vue实现动态路由菜单!!!
目录 总结一、步骤1.编写静态路由编写router.jsmain.js注册 2.编写permisstions.js权限文件编写permisstions.jsaxios封装的APIstore.js状态库system.js Axios-APIrequest.js axios请求实例封装 3.编写菜单树组件MenuTree.vue 4.主页中使用菜单树组件 总结 递归处理后端响应的…...
企业如何选择安全又快速的大文件传输平台
在现代信息化社会,数据已经成为各个行业的重要资源,而数据的传输和交换则是数据价值的体现。在很多场合,企业需要传输或接收大文件,例如设计图纸、视频素材、软件开发包、数据库备份等。这些文件的大小通常在几百兆字节到几十个字…...
springboot 自定义starter逐级抽取
自定义starter 背景:各个组件需要引入starter 还有自己的配置风格 –基本配置原理 (1)自定义配置文件 导入配置可以在配置文件中自动识别,提示 导入依赖后可以发现提示 (2)配置文件实现 –让配置文件对其他模块生…...
GAN:ImprovedGAN-训练GAN的改进策略
论文:https://arxiv.org/abs/1606.03498 代码:https://github.com/openai/improved_gan 发表:NIPS 2016 一、文章创新 1:Feature matching:特征匹配通过为生成器指定新目标来解决GANs的不稳定性,从而防止…...
docker限制容器内存的方法
在服务器中使用 docker 时,如果不对 docker 的可调用内存进行限制,当 docker 内的程序出现不可预测的问题时,就很有可能因为内存爆炸导致服务器主机的瘫痪。而对 docker 进行限制后,可以将瘫痪范围控制在 docker 内。 因此&#…...
阿里达摩院裁撤量子实验室
我是卢松松,点点上面的头像,欢迎关注我哦! 马云的达摩院也不搞量子计算了,因为缺钱,整体裁掉了达摩院量子实验室,把所有的设备都赠送给了浙江大学。 达摩院量子实验室:总共30个研究员…...
mysql数据库基础知识,Mysql的索引和主键区别,数据库的事务的基本特性
文章目录 数据库基础知识Mysql的索引和主键的区别数据库的事务的基本特性 数据库基础知识 为什么要使用数据库 数据保存在内存 优点: 存取速度快 缺点: 数据不能永久保存 数据保存在文件 优点: 数据永久保存 缺点:1…...
解决Vscode使用git提交卡住的问题
使用Vscode的git提交代码经常会很慢/卡住。 先点击左下角,进入设置 找到git的配置(建议直接搜索),把use Editor As commit input的勾选去掉即可解决。...
Linux C语言 32-网络编程之UDP例程
Linux C语言 32-网络编程之UDP例程 本节关键字:C语言 网络编程 UDP协议 套接字操作 服务端 客户端 相关C库函数:setsockopt, socket, bind, recvfrom, sendto, close 相关接口介绍 Linux C语言 30-套接字操作 例程执行任务说明 本例程中服务端的任务…...
ubuntu22.04系统下载程序和依赖,并拷贝到指定路径下
脚本1 apt install aptitude apt-get -d install xxx #xxx是待下载的安装包 mv /var/cache/apt/archives/* /home/tuners/1apt install aptitude apt-get -d install xxx mv /var/cache/apt/archives/*.deb /home/tuners/1 xxx 为程序包名称 /home/tuners/1为保存程序包的…...
Kafka KRaft 版本集群部署详细教程(附配置文件详细解释)
版本说明 Ubuntu 18.04.6Kafka 3.6.0JDK8 集群配置 操作系统ip域名Kafka Broker 端口Kafka Controller 端口Ubuntu 18.04.6192.168.50.131kafka1.com90929093Ubuntu 18.04.6192.168.50.132kafka2.com90929093Ubuntu 18.04.6192.168.50.133kafka3.com90929093 安装 vim, cur…...
在龙蜥 anolis os 23 上 源码安装 PostgreSQL 16.1
在龙蜥 OS 23上,本来想使用二进制安装,结果发现没有针对龙蜥的列表: 于是想到了源码安装,下面我们列出了PG源码安装的步骤: 1.安装准备 1.1.创建操作系统组及用户 groupadd postgres useradd -g postgres -m postgr…...
UDP的不可靠性可以用来做什么
User Datagram Protocol(UDP,用户数据报协议)是互联网协议套件中的一种传输层协议。与TCP不同,UDP是一种无连接的、不可靠的协议。 要知道UDP可以用来做什么,首先我们要知道它有何特点: 1,无连接: UDP是一…...
【2026 】大模型选型与 API 接入全指南:主流模型技术解析与实战对比
文章目录2026 大模型选型与 API 接入全指南:主流模型技术解析与实战对比一、引言二、2026 主流大模型全景2.1 闭源旗舰模型2.2 开源 / 可私有化模型三、能力维度横评四、API 接入方式全景4.1 主要接入渠道对比4.2 统一接口标准五、定价结构与成本估算5.1 Token 成本…...
点云处理入门:手把手教你理解VoxelNet与PointPillars的核心模块
点云处理入门:手把手教你理解VoxelNet与PointPillars的核心模块 自动驾驶和机器人感知领域正在经历一场由3D视觉技术驱动的革命。当激光雷达扫描周围环境时,它会生成成千上万个空间点——这就是我们所说的点云数据。与传统的2D图像不同,点云以…...
YOLOv8 智能交通违章检测 - 车牌识别与黑名单比对详解
YOLOv8 智能交通违章检测 - 车牌识别与黑名单比对详解 在交通违章检测系统中,车牌识别 (License Plate Recognition, LPR) 是锁定违法主体的关键,而黑名单比对则是实现自动预警和布控的核心业务逻辑。 本方案采用 YOLOv8 (车牌检测) + CRNN/LPRNet (字符识别) + 内存/Redis…...
华为企业网络实战:OSPF+VRRP+PAT+MSTP与USG防火墙综合配置指南
1. 企业网络架构设计与协议选型 在企业网络环境中,如何选择合适的协议组合往往决定了整个网络的稳定性和扩展性。我遇到过不少企业刚开始为了省事直接堆砌静态路由,结果随着业务扩展,维护成本呈指数级增长。华为这套OSPFVRRPPATMSTP的组合拳&…...
别再踩坑了!在Rancher里用Deployment部署Redis集群,Pod重启IP变动的终极解决方案
在Kubernetes中稳定部署Redis集群的实战指南 为什么Deployment不适合部署Redis集群? Redis作为典型的有状态服务,在Kubernetes环境中部署时面临着独特的挑战。许多开发者习惯性地使用Deployment控制器来部署Redis,这其实是一个常见的误区。问…...
数据增强技术对比:Mosaic、Mixup、Cutout与CutMix的核心优势与应用场景
1. 数据增强技术入门指南 当你第一次训练计算机视觉模型时,可能会遇到一个常见问题:为什么模型在训练集上表现很好,但在真实场景中却频频出错?这往往是因为训练数据不够多样化。数据增强技术就是解决这个问题的利器,它…...
在超大数据集下 DuckDB 与 MySQL 查询速度对比吨
一、什么是urllib3? urllib3 是一个用于处理 HTTP 请求和连接池的强大、用户友好的 Python 库。 它可以帮助你: 发送各种 HTTP 请求(GET, POST, PUT, DELETE等)。 管理连接池,提高网络请求效率。 处理重试和重定向。 支…...
模拟型对讲系统市场洞察:2026-2032年复合增长率(CAGR)为3.9%
在智慧社区与智能家居快速渗透的背景下,全球模拟型对讲系统市场正经历从主流产品向基础安防设备的定位转变。据恒州诚思最新调研数据显示,2025年全球模拟型对讲系统市场规模达115.4亿元,预计2032年将增至153.0亿元,2026-2032年复合…...
SimpleArduinoTimer:Arduino非阻塞定时器原理与RTC扩展实践
1. SimpleArduinoTimer 库深度解析:非阻塞定时器设计与工程实践1.1 库定位与核心价值SimpleArduinoTimer 是一个面向 Arduino 平台的轻量级、非阻塞式定时器 C 类库。其设计哲学直指嵌入式开发中最常见的痛点:delay()函数导致的程序完全挂起。该库通过封…...
武昌区文化墙设计制作一体
在城市发展进程中,文化墙作为一种独特的文化传播载体,正发挥着越来越重要的作用。武昌区作为历史文化名城的核心区域,通过文化墙设计制作一体化的方式,不仅能够展现区域特色文化,还能提升城市形象和居民的文化认同感。…...
