通用管理后台项目笔记 - Vue3+Vite安装环境、封装路由

概述

从0打造通用的后台管理系统,系列的第一篇博客,开发环境Node+Yarn+Vite的开发环境,这是记录的学习笔记。

Node环境

本地使用的是Node v18.18.2,npm v9.8.1,安装脚手架工具,npm、cnpm、yarn3种方式,如果你安装的是旧版本的vue-cli,需要提前卸载,npm uninstall vue-cli -gyarn global remove vue-cli,然后从新安装@vue/cli,这里我使用的是yarn。

npm install @vue/cli -g
cnpm install @vue/cli -g
yarn global add @vue/cli

使用vue --version,目前4.x以上版本支持创建Vue3项目,vue-cli官方中文文档https://cli.vuejs.org/zh/guide/

使用vite创建项目

官方文档 https://cn.vitejs.dev

node v18+使用创建项目命令 yarn create vite,在输入项目名称和选项,交互的界面非常友好,如下图:

WX20231025-071937@2x.png

其他版本的创建项目的命令:

npm init @vitejs/appcnpm init @vitejs/app yarn create @vitejs/app manager-fe

创建成功后,执行命令:

cd stark
yarn
yarn dev

WX20231025-080211@2x.png

安装项目所需的依赖

# 安装项目生产依赖
yarn add vue-router@next vuex@next element-plus axios -S
# 安装项目开发依赖
yarn add sass -D

在应用市场里,VsCode 安装需要的插件:

Eslint
Vetur
TypeScript
Prettier

配置vite中的server配置,官方文档https://cn.vitejs.dev/config/

server:{
host:"localhost",
port:8080
}

可以在项目入口的main.js,打印获取环境变量,如果想更改配置文件在根目录package.json,修改scripts,加入--mode dev,更详细的参考官方文档https://cn.vitejs.dev/guide/env-and-mode.html

  "scripts": {"dev": "vite --mode dev","build": "vite build","preview": "vite preview"},

3.png

console.log("环境变量=>",import.meta.env);

至此,环境搭建完成了,可以开始开发项目代码了。

环境配置

软件项目都会经历本地开发、测试服、生产环境不同的运行环境,项目在最开始的时候都会定义config文件,对环境进行区分,方便切换环境,提高工作中的开发效率,也可以在本地部署自己的mock环境,我的项目后期会使用PHP作为后端服务,实现Api接口。

const env = import.meta.env.MODE || 'prod'
const EnvConfig = {dev:{baseApi:'/',mockApi:''},test:{baseApi:'',mockApi:''},prod:{baseApi:'',mockApi:''}
}
export default {env:'dev',mock:true,...EnvConfig[env]
}

使用Config 配置的环境,比如可以在封装在axios中的引用:

import config from "../config";//在axios中的引用
const service = axios.create({baseURL: config.baseApi,timeout: config.timeout
})

路由封装

一个项目,最开始的时候都要配置好路由环境,路由跳转的三种方式(router-link 、传统跳转 、Composition API跳转),我们分别去分步骤讲解和实现它们:

1. main.js 全局加载路由加载路由的过程就相当于引入文件。

import router from './router';
app.use(router).mount('#app')

2.在App.vue的文件需要引入router组件。

<template><router-view></router-view>
</template>

3.使用

router-link 方式

<router-link to="/login">登录</router-link>

传统跳转

<template> <el-button @click="goHome">回首页</el-button> 
</template> 
<script> export default { name:'login', methods:{ goHome(){ this.$router.push('/welcome') } } }
</script>

Composition API跳转:

<script setup> 
import { useRouter } from 'vue-router' 
let router = useRouter() 
const goHome = ()=>{ router.push('/welcome') 
}
</script>

封装axios

封装axios更能提高效率,对Http 请求(request)、响应(response)进行token验证,和返回参数拦截。

import axios from "axios";//创建axios实例对象,添加全局配置
const service = axios.create({baseURL: config.baseApi,timeout: 8000
})//请求拦截
service.interceptors.request.use((req) => {//请求拦截具体逻辑代码实现return req;
})//响应拦截
service.interceptors.response.use((res) => {//响应拦截具体逻辑代码实现
})function request(options){options.method = options.method || 'get'if(options.method.toLowerCase() === 'get'){options.params = options.data;}if(config.env === 'prod'){service.defaults.baseURL = config.baseApi} else {service.defaults.baseURL = config.mock ? config.mockApi : config.baseApi}return service(options)
}['get','post','put','delete','patch'].forEach((item) => {request[item] = (url,data,options) => {return request({url,data,method:item,...options})}
})export default request;

在控制器中的使用的时候 在main.js中全局导入组件,使用:

app.config.globalProperties.$request = request;
this.$request({method: 'get',url: 'http://192.168.88.140/test.php',
}).then((res) => {console.log(res)
})

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

吉他、班卓琴和贝斯吉他降分器:Arobas Music Guitar 8.1.1

Arobas Music Guitar 是一款专业的吉他、班卓琴和贝斯吉他降分器。在熟练的手中&#xff0c;它不仅可以让您创作&#xff0c;还可以编辑、聆听和录制&#xff0c;以及导入和导出乐谱。如果有人感兴趣的话&#xff0c;录音是在八个轨道上进行的&#xff0c;你可以为每个轨道单独…

SurfaceFliger与Vsync信号如何建立链接?

Vsync信号上报流程 Vsync的注册函数&#xff0c;来临时会回调HWComposer的hook_VSYNC方法&#xff0c;接着调用到vsync方法中 大致流程梳理&#xff1a; 该方法会通知给SurfaceFliger的onVsyncReceived方法&#xff0c;接着调用DispSync的addResyncSample方法。 DispSyncThr…

钢带EPC纠偏比例伺服液压站比例伺服阀控制器

钢带EPC纠偏比例伺服液压站是一种专门用于卷取机的自动化设备&#xff0c;主要目标是确保钢带的一侧边缘保持平直&#xff0c;从而避免在后续运输和处理过程中损坏带钢的边缘。这种系统主要应用于钢铁、橡胶、造纸等行业的非透明带材连续生产线上。 该系统主要由液压源、电液伺…

RK3568-clock

pll锁相环 总线 gating rk3568.dtsi pmucru: clock-controller@fdd00000 {compatible = "rockchip,rk3568-pmucru";reg = <0x0 0xfdd00000 0x0 0x1000>;rockchip,grf = <&grf>;rockchip,pmugrf = <&pmugrf>;#clock-cells = <1>;#re…

【k8s】5、资源管理命令-声明式

目录 一、 yaml和json介绍 1、yuml语言介绍 2、k8s支持的文件格式 3、yaml和json的主要区别 二、声明式对象管理 1、命令式对象配置 2、声明式对象配置 3、声明式对象管理命令介绍 三、编写资源配置清单 1、 编写yaml文件 2、 启动并查看资源 3、创建service服务对外…

第18章_MySQL8其它新特性

第18章_MySQL8其它新特性 讲师&#xff1a;尚硅谷-宋红康&#xff08;江湖人称&#xff1a;康师傅&#xff09; 官网&#xff1a;http://www.atguigu.com 1. MySQL8新特性概述 MySQL从5.7版本直接跳跃发布了8.0版本&#xff0c;可见这是一个令人兴奋的里程碑版本。MySQL 8版…

1300*C. Social Distance(贪心构造)

Problem - 1367C - Codeforces 解析&#xff1a; 统计出所有连续0序列&#xff0c;并且记录其左右两侧有没有1&#xff0c;然后对于四种情况分别判断即可。 #include<bits/stdc.h> using namespace std; int t,n,k; signed main(){scanf("%d",&t);while(…

酷开科技,让家庭更有温度!

生活中总有一些瞬间&#xff0c;会让我们感到无比温暖和幸福。一个拥抱、一句问候、一杯热茶&#xff0c;都能让我们感受到家庭的温馨和关爱。酷开科技也用自己的方式为我们带来了独属于科技的温暖&#xff0c;通过全新的体验将消费者带进一个充满惊喜的世界&#xff0c;让消费…

HCIP——MGRE实验

一、实验要求 1.R5为ISP&#xff0c;只能进行IP地址配置&#xff1b;其所有地址均为公有IP地址 2.R1和R5间使用PPP的PAP认证&#xff0c;R5为主认证方&#xff1b; R2与R5之间使用PPP的chap认证&#xff0c;R5为主认证方&#xff1b; R3与R5之间使用HDLC封装。 3.R1/R2/R3…

linux查看系统版本、内核信息、操作系统类型版本

1. 使用 uname 命令&#xff1a;这将显示完整的内核版本信息&#xff0c;包括内核版本号、主机名、操作系统类型等。 uname -a2. 使用 lsb_release 命令&#xff08;仅适用于支持 LSB&#xff08;Linux Standard Base&#xff09;的发行版&#xff09;&#xff1a;这将显示包含…

VS2022 C# 读取 excel 2023年

今天是2023年6月26日&#xff0c;我有一个excel表要读数据&#xff0c;然后放到winform程序来处理&#xff0c;网上的资料太旧&#xff0c;很多用不起来&#xff0c;试了一个可以使用&#xff0c;记录一下&#xff1a; 一、excel文件后缀需要小写。 二、用VS2022建一个winform…

超全整理,Jmeter性能测试-脚本error报错排查/分布式压测(详全)

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 性能脚本error报错…