【Vue3 + TS + Vite】从0到1搭建后台管理系统

前言

没搭建过Vue3的项目,从0开始搭建一下,记录一下自己的步骤。
技术栈vue3 + ts + scss + pinia + vite
我尽量写的详细一些,后续也会记录我在项目过程中,遇到的一些问题。

文章目录

  • 前言
  • 环境搭建
    • 一、创建项目
        • 1. 使用 Vite 创建 Vue 3 + TypeScript 项目:
        • 2. 进入项目目录:
        • 3. 安装项目依赖:
    • 二、项目结构规划
        • 1.项目的初始结构
        • 2. 通常可以创建以下目录结构:
    • 三、配置 Pinia
        • 1. 安装 Pinia:
        • 2. 创建 Pinia 实例:
        • 3. 在`main.ts`文件中引入 Pinia 实例:
        • 4. 在`src/store`文件夹下创建不同的 store 文件,例如`userStore.ts`用于管理用户状态:
        • 5. 在组件中使用 store:
    • 四、路由配置
        • 1. 安装`vue-router`:
        • 2. 创建路由模块:
    • 五、安装 less/scss
        • 1. 安装 scss and sass 依赖
        • 2. 安装 less 依赖
    • 六、安装 Element Plus
        • 1. 安装 Element Plus(一个流行的 Vue UI 组件库):
        • 2. 引入 Element Plus:在 main.ts 文件中引入并配置。
    • 七、请求数据(Axios 为例)
        • 1. 安装 Axios:
        • 2. 创建请求封装:
        • 3. 在 store 或组件中使用请求:
    • 八、构建和部署
        • 1. 开发完成后,可以使用以下命令进行构建:
        • 2. 根据你的部署环境进行相应的部署操作,如将构建后的文件部署到服务器上。

环境搭建

在搭建之前请确认几点:
1.创建的项目将使用基于 Vite 的构建设置;
2.确保安装了最新版本的 Node.js,可以从官方网站下载并安装;
3.当前工作目录正是打算创建项目的目录。

一、创建项目

1. 使用 Vite 创建 Vue 3 + TypeScript 项目:
  • npm:
   npm create vite@latest
  • yarn:
yarn create vite

在这里插入图片描述

  • Project name : 自己写一个就行,用英文(这个原因不用说吧)
  • Select a framework:用键盘上下键选择就行,选到 Vue 回车
  • Select a variant:我想尝试一下ts,所以这里选了 typescript,按照自己的需求选择
    这里我用 yarn ,命令创建项目,后面安装一些依赖,也是用 yarn

大家注意统一,要么一直用 npm , 要么一直用 yarn

2. 进入项目目录:
cd my_demo_proj
3. 安装项目依赖:
yarn

在这里插入图片描述

二、项目结构规划

1.项目的初始结构

在这里插入图片描述

2. 通常可以创建以下目录结构:
  • src/components :存放可复用的组件。
  • src/views :存放页面组件,例如Dashboard.vue用于仪表盘页面等。
  • src/api :用于封装与后端 API 的交互。
  • src/router :路由配置。
  • src/store :状态管理。
  • src/styles :全局样式。
    按照自己的习惯来,且合理就行。还是把我创建的目录结构贴在这,方便我后期看。
    在这里插入图片描述

三、配置 Pinia

1. 安装 Pinia:
  • npm:
   npm install pinia
  • yarn:
yarn add pinia

在这里插入图片描述

pinia 拥抱 ts 会比 vuex 好一些,pinia中文官网

2. 创建 Pinia 实例:

在项目的src目录下创建一个名为store的文件夹,然后在该文件夹中创建一个index.ts文件,添加以下内容:

import { createPinia } from 'pinia';const pinia = createPinia();export default pinia;
3. 在main.ts文件中引入 Pinia 实例:
import { createApp } from 'vue';
import App from './App.vue';
//pinia
import { createPinia } from 'pinia' 
const pinia = createPinia()const app = createApp(App);
app.use(pinia);
app.mount('#app');
4. 在src/store文件夹下创建不同的 store 文件,例如userStore.ts用于管理用户状态:
 import { defineStore } from 'pinia';export const useUserStore = defineStore('user', {state: () => ({username: '',// 其他用户相关状态}),actions: {setUsername(username: string) {this.username = username;},},});
5. 在组件中使用 store:
 <script setup lang="ts">import { useUserStore } from '../store/userStore';const userStore = useUserStore();userStore.setUsername('admin');</script>

四、路由配置

1. 安装vue-router
  • npm:
  npm install vue-router@4
  • yarn:
 yarn add vue-router@4 

在这里插入图片描述

2. 创建路由模块:
  • src/views文件夹中创建 Dashboard.vue 文件;
  • src/router文件夹中创建index.ts文件,配置路由:
    import { createRouter, createWebHistory } from 'vue-router';
    import Dashboard from '../views/Dashboard.vue';const routes = [{path: '/',name: 'Dashboard',component: Dashboard,},// 添加其他路由
    ];const router = createRouter({history: createWebHistory(),routes,
    });export default router;
    

五、安装 less/scss

这里我安装了 SCSS(因为没有用过这个,想试试),大家按需安装就行。

1. 安装 scss and sass 依赖
  • npm:
npm add -D sass 
  • yarn:
yarn add sass

在这里插入图片描述

2. 安装 less 依赖
  • npm:
 npm add -D less 
  • yarn:
 yarn add less 

六、安装 Element Plus

1. 安装 Element Plus(一个流行的 Vue UI 组件库):
  • npm :
npm install element-plus --save
  • yarn:
yarn add element - plus

在这里插入图片描述

2. 引入 Element Plus:在 main.ts 文件中引入并配置。
import { createApp } from 'vue';
import ElementPlus from 'element-plus';
import 'element-plus/dist/index.css';
import App from './App.vue';const app = createApp(App);
app.use(ElementPlus);
app.mount('#app');

七、请求数据(Axios 为例)

这里先简单的介绍一下,具体的我封装好的接口请求文件的代码,会单独出一篇分享出来。(这也是我第一次封装axios请求)

1. 安装 Axios:
  • npm:
npm install axios
  • yarn:
yarn add axios

在这里插入图片描述

2. 创建请求封装:

src目录下创建api文件夹,在该文件夹中创建http.ts文件封装 Axios 请求:

import axios from 'axios';const instance = axios.create({baseURL: 'your-api-base-url',
});export default instance;
3. 在 store 或组件中使用请求:
import http from '../api/http';export const useDataStore = defineStore('data', {state: () => ({data: [],}),actions: {async fetchData() {const response = await http.get('/your-api-endpoint');this.data = response.data;},},
});

八、构建和部署

1. 开发完成后,可以使用以下命令进行构建:
  • npm:
npm run build
  • yarn:
yarn run build
2. 根据你的部署环境进行相应的部署操作,如将构建后的文件部署到服务器上。

以上是总结的大概步骤,更详细的步骤后面还会写,第一次自己搭建项目挑战真的大。办法总比困难多!!!

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

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

相关文章

车载超声波雷达

车载超声波雷达 法雷奥同致电子BOSCH豪恩汽电辉创海康威视珠海上富晟泰克 法雷奥 法雷奥集团&#xff08;Valeo&#xff09;是一家总部位于法国的专业致力于汽车零部件、系统、模块的设计、开发、生产及销售的工业集团。公司业务涉及原配套业务及售后业务&#xff0c;是世界领…

有点晕,inline, crossinline,noinline小计

inline 主要用于展开铺平函数&#xff0c;用于高频访问但是代码不是很多的方法&#xff0c;减少函数对象的定义 fun <T> List<T>.normalForeach(action:(T)->Unit){for(item in this){action(item)} }inline fun <T> List<T>.inlinedForeach(action…

wildcard使用教程,解决绝大多数普通人的海外支付难题

许多人可能已经注意到,国外的一些先进AI工具对国内用户并不开放。而想要使用这些工具,我们通常会面临两个主要障碍:一是网络访问的限制,二是支付问题。网络问题很容易解决&#xff0c;难的是如何解决在国内充值海外软件。 今天给大家推荐一个工具——wildcard&#xff0c;用它…

MISC - 第13天(python脚本 重命名文件,拼接二维码,cloacked-pixel工具,中文电码,五笔编码)

前言 各位师傅大家好&#xff0c;我是qmx_07&#xff0c;今天继续讲解MISC的相关知识 [安洵杯 2019]吹着贝斯扫二维码 附件信息: 使用APCHPR暴力破解工具&#xff0c;flag.zip 破解失败可能线索在其他文件&#xff0c;放到hxd查看 在hxd中&#xff0c;发现该文件头JFIF 是j…

HUAWEI_HCIA_实验指南_Lib1.4_配置通过Telnet登录系统

一、原理概述 Telnet(Telecommunication Network Protocol)起源于ARPANET,是最早的Internet应用之一。 Telnet 通常用在远程登录应用中&#xff0c;以便对本地或远端运行的网络设备进行配置、监控和维护。如网络中有多台设备需要配置和管理&#xff0c;用户无需为每一台设备…

多模态方法总结

多模态方法总结 架构分为Transformer Encoder的方法和基于Transformer Encoder和Decoder的方法 Transfomer Encoder方法 这张图来源于VILT&#xff0c;基本概括了多模态领域的模型架构。 图a是VSE或VSE的架构&#xff0c;文本端进行一个轻量的word embedding&#xff0c;视觉…

交易所开发:构建安全、高效、可靠的数字资产交易平台

数字资产交易平台是加密市场中连接用户与数字货币的重要枢纽。开发一个安全、高效、可靠的交易所&#xff0c;不仅需要综合考虑技术架构、安全策略、用户体验等方面&#xff0c;还需严格遵循法规要求以确保合规性。本文总结了交易所开发的关键要素&#xff0c;包括其类型、核心…

C++ static静态

个人主页&#xff1a;Jason_from_China-CSDN博客 所属栏目&#xff1a;C系统性学习_Jason_from_China的博客-CSDN博客 所属栏目&#xff1a;C知识点的补充_Jason_from_China的博客-CSDN博客 概念概述 用 static 修饰的成员变量&#xff0c;称之为静态成员变量&#xff0c;静态成…

如何让 Raft 更稳健,使用 Pre-vote

本文参考文献 《Consensus: Bridging Theory and Practice》 1. Provote 解析原文 该算法解决的是某台机器被隔离后&#xff0c;再次加入时出现的扰动其他机器的问题。 1. 防止服务器重新加入集群时引发的中断 Raft领导者选举算法的一个缺点是&#xff0c;当一台已从集群中…

医疗工具实例分割系统源码&数据集分享

医疗工具实例分割系统源码&#xff06;数据集分享 [yolov8-seg-C2f-DySnakeConv&#xff06;yolov8-seg-goldyolo等50全套改进创新点发刊_一键训练教程_Web前端展示] 1.研究背景与意义 项目参考ILSVRC ImageNet Large Scale Visual Recognition Challenge 项目来源AAAI Glo…

JS设计模式之策略模式:灵活、可扩展的编程利器

一. 前言 在 JavaScript 前端开发中&#xff0c;随着代码规模的增长和项目的复杂性&#xff0c;我们常常需要处理各种不同的条件和情况&#xff0c;而这可能导致代码变得冗长、难以维护。这时&#xff0c;我们就需要一种强大而灵活的编程模式来应对这些复杂的逻辑&#xff0c;…

【记录】PPT|PPT 箭头相交怎么跨过

众所周知&#xff0c;在PPT中实现“跨线”效果并非直接可行&#xff0c;这一功能仅存在于Visio中。然而&#xff0c;通过一些巧妙的方法&#xff0c;我们可以在PPT中模拟出类似的效果。怎么在PPT中画交叉但不重叠的线-百度经验中介绍了一种方法&#xff0c;而本文将介绍一种改进…

如何自制无人机?

自制无人机是一个既有趣又富有挑战性的项目&#xff0c;它涉及到电子工程、机械工程和航空航天工程等多个领域的知识。以下是一个基本的自制无人机制作步骤和所需材料概览&#xff0c;供您参考&#xff1a; 一、准备阶段 1. 明确目标 - 确定无人机的用途&#xff08;如航拍、…

递归 回溯算法详解

递归 深搜 回溯 什么是回溯算法题目一&#xff1a; 全排列1. 题⽬链接&#xff1a;2. 题⽬描述&#xff1a;3. 解法&#xff1a;算法思路&#xff1a;递归流程如下&#xff1a; 4.代码 题目二&#xff1a;⼦集1. 题⽬链接&#xff1a;2. 题目描述&#xff1a;3. 解法&#xff1…

宠物咖啡馆数字化转型:SpringBoot框架的实践

1系统概述 1.1 研究背景 随着计算机技术的发展以及计算机网络的逐渐普及&#xff0c;互联网成为人们查找信息的重要场所&#xff0c;二十一世纪是信息的时代&#xff0c;所以信息的管理显得特别重要。因此&#xff0c;使用计算机来管理基于Spring Boot的宠物咖啡馆平台的设计与…

【中间件】—一篇说明白API网关常用API网关推荐

【中间件】- API网关简介 ⭐⭐⭐⭐⭐⭐ Github主页&#x1f449;https://github.com/A-BigTree 笔记仓库&#x1f449;https://github.com/A-BigTree/tree-learning-notes 个人主页&#x1f449;https://www.abigtree.top ⭐⭐⭐⭐⭐⭐ 文章目录 【中间件】- API网关简介1 计算…

机器学习K近邻算法——回归问题K近邻算法示例

针对“数据4.1”&#xff0c;讲解回归问题的K近邻算法&#xff0c;以V1&#xff08;营业利润水平&#xff09;为响应变量&#xff0c;以V2&#xff08;固定资产投资&#xff09;、V3&#xff08;平均职工人数&#xff09;、V4&#xff08;研究开发支出&#xff09;为特征变量。…

[Python学习日记-41] Python 中的列表生成式

[Python学习日记-41] Python 中的列表生成式 简介 什么是列表生成式 简介 列表是编程当中最为常用的一种数据类型&#xff0c;同时我们也会经常操作&#xff08;增删改查&#xff09;里面的数据&#xff0c;有的时候我们会需要大批量的修改所有列表当中的数据&#xff0c;本篇…

你会写SCI学术论文吗?

撰写SCI学术论文是许多科研工作者和研究生的必经之路。然而&#xff0c;对于许多新手来说&#xff0c;这可能是一个既复杂又令人望而生畏的任务。本文将为你提供一些实用的建议和步骤&#xff0c;帮助你更高效地完成SCI论文的写作。 1. 先中间后两头&#xff1a;摘要和结论最…

CCF开源发展委员会主任王怀民院士参与世界计算大会“开源生态构建数字未来”主题研讨并做重要报告...

点击蓝字 关注我们 CCF Opensource Development Committee 2024年9月25日上午&#xff0c;作为2024世界计算大会论坛之一的“开源生态构建数字未来”主题研讨在长沙召开。本次论坛由长沙先进技术研究院承办&#xff0c;由中国开源软件推进联盟、CCF YOCSEF长沙、湖南先进技术研…