vue3 + ts +element-plus + vue-router + scss + axios搭建项目
本地环境:
node版本:20.10.0
目录
一、搭建环境
二、创建项目
三、修改页面
四、封装路由vue-router
五、element-plus
六、安装scss
七、封装axios
一、搭建环境
1、安装vue脚手架
npm i -g @vue/cli
2、查看脚手架版本
vue -V
3、切换路径到需要创建项目的地方

二、创建项目
1、创建项目
npm create vite@latest

2、根据提示依次输入以下命令:(安装依赖并运行项目)
1、cd vue3_test //切换到项目根目录下
2、npm i //安装依赖
3、npm run dev //启动项目

3、浏览器打开

三、修改页面
1、删除原本的helloword页面,在src下新建view/home/index.vue文件
2、修改App.vue文件
在 Vue 3 中,<RouterView> 组件是 Vue Router 4 的一部分,用于渲染匹配到的路由组件。
<script setup lang="ts">
</script><template><RouterView></RouterView>
</template><style scoped></style>
四、封装路由vue-router
vue3需要安装4.0以上版本
vue2需要安装4.0以下版本
1、安装路由
npm i vue-router
2、在src下新建router/index.ts文件
router/index.ts
// src/router/index.ts
import { createRouter, createWebHashHistory } from "vue-router";
const routes: any = [{path: "/",redirect: "/index",},{path: "/index",component: () => import("../view/home/index.vue"),name: "Index",menuShow: true,},
];
const router = createRouter({history: createWebHashHistory(),routes: routes,
});export default router;
3、在main.ts中引入
main.ts
import { createApp } from 'vue';
import router from './router/index';
import App from './App.vue';const app = createApp(App);
app.use(router);
app.mount('#app');
五、element-plus
1、安装
npm install element-plus
2、全局引用
//main.ts
import { createApp } from 'vue';
import './style.css'
import App from './App.vue';
import router from './router';
import ElementUI from 'element-plus'; // 引入Element Plus配置
import "element-plus/dist/index.css"const app = createApp(App);
app.use(router);
app.use(ElementUI);
app.mount('#app');
六、安装scss
npm install sass
七、封装axios
1、安装axios
npm i axios
2、src下新建utils/axios.ts文件
// axios.ts
import axios from "axios";
import { ElMessage } from 'element-plus'
const service = axios.create({baseURL: '', //访问后端接口,例如:192.168.1.131:8090/timeout: 3000,
})
// 请求拦截器
service.interceptors.request.use((config) => {// 在发送请求之前做些什么,例如添加请求头等return config;},(error) => {// 对请求错误做些什么return Promise.reject(error);}
);
// 相应拦截器
service.interceptors.response.use((response) => {// 对响应数据做些什么,例如处理错误信息等return response;},(error) => {if (error && error.response) {switch (error.response.status) {case 400:error.message = '400:请求错误'breakcase 403:error.message = '403:拒绝访问'breakcase 404:error.message = `404:请求地址出错: ${error.response.config.url}`breakcase 408:error.message = '408:请求超时'breakcase 500:error.message = '500:服务器内部错误,请联系管理员'breakcase 501:error.message = '501:服务未实现'breakcase 502:error.message = '502:网关错误'breakcase 503:error.message = '503:服务不可用'breakcase 504:error.message = '504:网关超时'breakcase 505:error.message = '505:HTTP版本不受支持'breakdefault:}}ElMessage({message: error.message,type: 'error',duration: 3 * 1000,})console.error(error);// 对响应错误做些什么return Promise.reject(error);}
);export default service
3、src下新建api文件下,api/home_api.ts
import request from "../utils/axios"
export function getBannerApi(data: any) {return request({url: "接口地址",method: "请求方式", //(post或者get)params:data //(如果是post请求,直接是data)})
}
4、页面引用接口,并请求
<script lang="ts" setup>
import { ref, onMounted, reactive } from "vue"
import * as homeInfoApi from '../../api/home_api';
let newsList = reactive([])
const total = ref(0 as any);
const pageSize = ref(20 as any);
const pageIndex = ref(1 as any);
onMounted(() => {getProductData()
})
const getProductData = async () => {try {// 参数let queryParams = {limit: pageSize.value,offset: pageIndex.value,sid: 415,}// 请求接口const response = await homeInfoApi.getBannerApi(queryParams);response.data.data.forEach((element: any) => {newsList.push(element)});total.value = response.data.pagination.total;console.log(response)} catch (error) {console.error(error);} finally {}
}</script>
八、配置vite.config.ts
import { defineConfig } from 'vite';
import vue from '@vitejs/plugin-vue';export default ({ command, mode }: { command: string; mode: string }) => {const config = defineConfig({plugins: [vue()],server: {port: 8090, // 设置新的端口(前端接口)open: true, // 自动打开浏览器host: "192.168.1.130",//本地主机地址proxy: {'/api': {target: 'http://192.168.1.131:8081/', //请求后端接口changeOrigin: true,rewrite: (path) => path.replace(/^\/api/, ''),},}},});return config;
};
相关文章:
vue3 + ts +element-plus + vue-router + scss + axios搭建项目
本地环境: node版本:20.10.0 目录 一、搭建环境 二、创建项目 三、修改页面 四、封装路由vue-router 五、element-plus 六、安装scss 七、封装axios 一、搭建环境 1、安装vue脚手架 npm i -g vue/cli 2、查看脚手架版本 vue -V3、切换路径到需…...
二叉树试题解析
一、单项选择题 01.下列关于二叉树的说法中,正确的是( C ). A.度为2的有序树就是二叉树 B.含有n个结点的二叉树的高度为 C.在完全二叉树中,若一个结点没有左孩子,则它必是叶结点 D.含有n个结点的完全二叉树的高度为解析:A 二叉树…...
计算机服务器中了faust勒索病毒怎么办,faust勒索病毒解密工具流程
网络是一把利剑,可以方便企业开展各项工作业务,为企业提供极大的便利,但随着网络技术的不断发展与应用,网络数据安全威胁也在不断增加,给企业的正常生产运营带来了极大困扰,近日,云天数据恢复中…...
初次部署麒麟V10系统需要的配置,快速完成测试环境的搭建
配置麒麟V10 设置“root”登录密码 sudo su -passwd # 设置登录密码允许“root”远程登录 sudo vim /etc/ssh/sshd_configsshd_config # ↓↓↓↓修改的内容↓↓↓↓ PermitRootLogin yes # ↑↑↑↑修改的内容↑↑↑↑重启服务 sudo systemctl restart sshd允许通过图像界…...
DOcker in Docker 原理与实战代码详解
Docker in Docker(DinD)指的是在Docker容器内部运行另一个Docker守护进程和客户端。这种技术可以用于创建嵌套的Docker环境,例如在持续集成/持续部署(CI/CD)管道中构建和测试Docker镜像。然而,需要注意的是…...
公司系统中了.rmallox勒索病毒如何恢复数据?
早晨上班时刻: 当阳光逐渐洒满大地,城市的喧嚣开始涌动,某公司的员工们纷纷踏入办公大楼,准备开始新的一天的工作。他们像往常一样打开电脑,准备接收邮件、查看日程、浏览项目进展。 病毒悄然发作: 就在员…...
论文阅读:Forget-Me-Not: Learning to Forget in Text-to-Image Diffusion Models
Forget-Me-Not: Learning to Forget in Text-to-Image Diffusion Models 论文链接 代码链接 这篇文章提出了Forget-Me-Not (FMN),用来消除文生图扩散模型中的特定内容。FMN的流程图如下: 可以看到,FMN的损失函数是最小化要消除的概念对应的…...
html5cssjs代码 036 CSS默认值
html5&css&js代码 036 CSS默认值 一、代码二、解释 CSS默认值(也称为浏览器默认样式)是指当HTML元素没有应用任何外部CSS样式时,浏览器自动为这些元素赋予的一组基本样式。这些样式是由浏览器的默认样式表(User Agent sty…...
小米路由器4A千兆版刷回官方固件
原文链接:小米路由器4A千兆版刷回官方固件及修改SN绑定APP-小米无线路由器及小米网络设备-恩山无线论坛 (right.com.cn) 进入breed 由于openwrt工作不稳定,决定重新刷回官方固件。 由于当前路由器已经刷过breed,不再重新刷入。 如何刷入b…...
【Leetcode每日一题】 递归 - 两两交换链表中的节点(难度⭐)(38)
1. 题目解析 题目链接:24. 两两交换链表中的节点 这个问题的理解其实相当简单,只需看一下示例,基本就能明白其含义了。 2.算法原理 一、理解递归函数的含义 首先,我们需要明确递归函数的任务:给定一个链表…...
如何部署GPT模型至自有服务器:从零开始搭建你的智能聊天机器人
引言 GPT模型是自然语言处理领域的重要突破,它能够通过生成式的文本生成方式,实现与用户的智能交互。本文将详细介绍如何将GPT模型部署到自有服务器上,并编写一个基本的API接口来实现与聊天机器人的交互。 目录 引言 一、准备工作 首先&am…...
uniapp 之 一些常用方法的封装(页面跳转,页面传参等)
util.js 提示:permission.js是uniapp插件市场由官方DCloud_heavensoft提供的App权限判断和提示插件。 import permision from "/js_sdk/wa-permission/permission.js"/*** uni.toast 封装* param {String} msg toast 提示内容* param {Number} duration …...
flutter 单列选择器
引入 flutter_pickers: ^2.1.9 import package:flutter_pickers/pickers.dart; import package:flutter_pickers/style/default_style.dart; import package:flutter_pickers/style/picker_style.dart;List<String> _numberList [99,98,97,96,95,94,93,92,91,90,89,88,…...
管理类联考–复试–英文面试–问题–WhatWhyHow--纯英文汇总版
文章目录 Do you have any hobbies? What are you interested in? What do you usually do in your spare time? Could you tell me something about your family? Could you briefly introduce your family? What is your hometown like? Please tell me so…...
亮数据代理IP轻松解决爬虫数据采集痛点
文章目录 一、爬虫数据采集痛点二、为什么使用代理IP可以解决?2.1 爬虫和代理IP的关系2.2 使用代理IP的好处 一、爬虫数据采集痛点 爬虫数据采集可能会面临一些挑战和痛点,其中包括: 爬虫代码维护难:网站的结构可能会经常变化&am…...
html5cssjs代码 035 课程表
html5&css&js代码 035 课程表 一、代码二、解释基本结构示例代码常用属性样式和装饰响应式表格辅助技术 一个具有亮蓝色背景的网页,其中包含一个样式化的表格用于展示一周课程安排。表格设计了交替行颜色、鼠标悬停效果以及亮色表头,并对单元格设…...
Eclipse For ABAP:安装依赖报错
1.安装好Eclipse后需要添加依赖,这里的地址: https://tools.hana.ondemand.com/latest 全部勾选等待安装结束; 重启后报错:ABAP communication layer is not configured properly. This might be caused by missing Microsoft Visual C++ 2013 (x64) Runtime DLLs. Consu…...
C++特性三:多态---纯析构和纯虚析构
多态使用时,如果子类中有属性开辟到堆区,那么父类指针在释放时无法调用到子类的析构代码 解决方式:将父类中的析构函数改为虚析构或者纯虚析构 虚析构和纯虚析构共性: 1.可以解决父类指针释放子类对象 2.都需要有具体的函数实现…...
创建可引导的 macOS 安装器
你可以将外置驱动器或备用宗卷用作安装 Mac 操作系统的启动磁盘。 以下高级步骤主要适用于系统管理员以及其他熟悉在“终端”中输入命令的经验丰富的用户。 升级 macOS 或重新安装 macOS 不需要可引导安装器,但如果你要在多台电脑上安装 macOS,而又不…...
ssm+vue的公廉租房维保系统(有报告)。Javaee项目,ssm vue前后端分离项目。
演示视频: ssmvue的公廉租房维保系统(有报告)。Javaee项目,ssm vue前后端分离项目。 项目介绍: 采用M(model)V(view)C(controller)三层体系结构&…...
手把手调试RH850G3KH中断控制器:INTC1/INTC2寄存器配置避坑手册
手把手调试RH850G3KH中断控制器:INTC1/INTC2寄存器配置避坑手册 在汽车电子控制单元(ECU)开发中,中断处理的实时性和可靠性直接关系到系统稳定性。RH850G3KH作为Renesas旗舰级车规MCU,其双中断控制器架构(I…...
小龙虾 openclaw + 财务管理系统,自动化的财务管家来了~
一张表格管理自己的财务情况,对于每个超级个体来讲,都建议把上次分享的《人生 CEO 财务管理系统》带回家。在没有正式上线应用市场之前,已经 200 多人使用过了。特别适合想做一人公司或者超级个体的人。你不理财,财不理你。并且站…...
PrismLauncher:解决Minecraft多版本管理难题的终极方案
PrismLauncher:解决Minecraft多版本管理难题的终极方案 【免费下载链接】PrismLauncher A custom launcher for Minecraft that allows you to easily manage multiple installations of Minecraft at once (Fork of MultiMC) 项目地址: https://gitcode.com/gh_m…...
Alienfx-tools:超越AWCC的Alienware硬件控制开源方案
Alienfx-tools:超越AWCC的Alienware硬件控制开源方案 【免费下载链接】alienfx-tools Alienware systems lights, fans, and power control tools and apps 项目地址: https://gitcode.com/gh_mirrors/al/alienfx-tools Alienfx-tools是一款专为Alienware设备…...
Nginx配置WebSocket代理时Handshake失败的排查与修复(Invalid Upgrade header问题解析)
1. 为什么WebSocket握手会失败? 最近在帮朋友排查一个线上问题:测试环境跑得好好的WebSocket服务,上了生产环境就频繁报错。后端日志里明晃晃写着"Handshake failed due to invalid Upgrade header: null",这到底是怎么…...
使用DevEco Studio创建你的第一个鸿蒙应用
首先我们打开安装好的DevEco Studio开发工具,点击“新建项目”:在新建项目界面,我们直接使用默认的“Empty Ability”模板,该模板可以直接生成一个带有Hello World页面的项目结构,直接点击“下一步”即可:配…...
实时体积云渲染进阶:Perlin与Worley噪声的混合艺术
1. 理解体积云渲染的基础噪声 在实时体积云渲染中,噪声算法扮演着关键角色。就像画家需要不同的笔触来表现云层的质感,我们需要Perlin和Worley这两种基础噪声来构建云的形态。这两种噪声各有特点,理解它们的差异是混合使用的前提。 Perlin噪声…...
你好,放大器——失调与偏置的实战分析与优化策略
1. 放大器失调与偏置的真相大白 第一次用运放做电流检测电路时,我盯着输出端那0.5mV的"幽灵电压"百思不得其解——明明输入接地,输出却像闹鬼似的飘着电压。后来才发现,这其实是所有工程师都会遇到的经典问题:失调电压和…...
别让PCB变成‘电磁炸弹’:从布局到布线,一份给硬件工程师的EMI实战避坑清单
别让PCB变成‘电磁炸弹’:从布局到布线,一份给硬件工程师的EMI实战避坑清单 刚入行的硬件工程师小张最近遇到了一个棘手问题——他设计的工控主板在测试时频繁触发EMC检测设备的报警。更糟的是,产线反馈首批500块板子中有30%出现无线模块通信…...
30分钟快速掌握SpeechBrain:从零开始构建智能语音系统的终极指南
30分钟快速掌握SpeechBrain:从零开始构建智能语音系统的终极指南 【免费下载链接】speechbrain A PyTorch-based Speech Toolkit 项目地址: https://gitcode.com/GitHub_Trending/sp/speechbrain SpeechBrain是一个基于PyTorch的全功能语音工具包,…...
