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

前言

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

环境搭建

在搭建之前请确认几点:
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. 根据你的部署环境进行相应的部署操作,如将构建后的文件部署到服务器上。

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

Vue3 TS Vite后台管理系统是一个基于Vue3、TypeScriptVite等技术栈搭建前端管理框架。该框架主要包含菜单、选项卡和面包屑等模块,通过路由监听实现三个模块之间的联动,并且同时监听浏览器的变化。状态管理方面使用了Pinia进行集中管理。需要注意的是,该示例只包含前端代码,未与后台进行关联实现菜单和用户等权限。如果需要进行权限相关的开发,需要进行二次开发。整体效果如效果图所示。 技术栈方面,主要使用了Vue3、Vue Router、Pinia、Element Plus、Vite等。此外,还使用了一些辅助工具库,如js-cookie等。 项目目录结构如下: - src - assets:资源文件(包括css、img等) - components:公共组件 - pages:存放路由组件 - stores:状态管理 - router:路由配置 - util:工具类 - views:视图组件(存放框架主体组件) - App.vue:根组件 - main.ts:入口文件 - permission.ts:路由跳转权限配置 - setting.ts:配置文件 全局配置文件setting.js统一管理系统的配置,可以进行菜单、选项卡、面包屑等的可配置化。例如可以设置系统名称、是否显示顶部导航、是否显示选项卡、是否显示logo、是否显示菜单等。 该项目的完整代码可以在以下地址下载: [https://gitee.com/yxsmall/vue3-ts-element](https://gitee.com/yxsmall/vue3-ts-element) 总结:以上是对Vue3 TS Vite后台管理系统的简单介绍,如果对该框架感兴趣,可以下载源码进行学习和进一步开发。祝学习进步!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

菜鸟una

客官打赏小银子,我库库出文

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值