初学vue3心得

这几年经济形势不好,国外对程序员的要求一直都是全栈,国内也慢慢要求通才,作为一名后端算法工程师,最近在学vue3,以下是最近学习的一点心得:

所有的npm install命令前面一定要改成cnpm install,提高速度

在main.js中引入了import "element-plus/dist/index.css";这个全局样式之后,其他这个项目的所有的.vue文件都不需要再写style了,除非有自己自定义的style,


import "element-plus/dist/index.css";可以同时适应手机端和电脑端

<style scoped>

/* 如果需要覆盖全局样式,可以在这里添加 */

</style>
这里scoped的意思是样式仅仅在当前.vue里生效,如果要改,就在这里改
如果没有 scoped,在 <style> 中定义的样式将会应用到整个项目中的所有组件,而不仅仅是当前组件。

1.vueDevTools的关闭问题:
新建的vue项目,总是会出现及其烦人的DevTools,新手不知道怎么关,

这个东西一点开还是一个弹窗,十分凡人,其实关闭方法很简单,在vite.config.js里把ueDevTools(),注释掉就行

2.vue3的项目,main.js是入口,使用element-plus组件,具体参考官网:

快速开始 | Element Plus

main.js里前11行代码都是写死的:src\main.js

注意:这里引入了:import "element-plus/dist/index.css";
这意味着其他所有地方的.vue文件不需要再写style了,只需要templatehe和script就行了

import { createApp } from "vue";import App from "./App.vue";import router from "./router";import ElementPlus from "element-plus";import "element-plus/dist/index.css";const app = createApp(App);app.use(ElementPlus);app.use(router);app.mount("#app");

一定要在app.vue里面写好import { RouterLink, RouterView } from 'vue-router'
参考我的:src\App.vue

<script setup>
import { RouterLink, RouterView } from 'vue-router'
</script><template><RouterView />
</template><style scoped>
</style>

3.关于@的问题,在vue项目中,这两个文件都配置了@就是src,然而它们的作用不同,

  • jsconfig.json:仅在 IDE(如 VSCode)中生效,用于提升开发体验和代码智能提示。
  • vite.config.js:在实际运行和构建项目时生效,确保路径别名 @ 在运行时能够正确映射到 src 目录。

为什么需要同时配置?

  • jsconfig.json:为了在 IDE 中提供更好的开发体验。如果你不配置 jsconfig.json,VSCode 可能无法识别 @ 别名,导致代码补全、错误检查等功能失效。
  • vite.config.js:为了确保在实际运行和构建项目时,Vite 能够正确解析 @ 别名,避免路径解析错误。

4.一定要在src下新建api文件夹,然后里面写api,:

这里写的是后端的接口,还有axios拦截器也在这里写,参考我的src\api\index.js

import axios from 'axios';// 创建 axios 实例
const service = axios.create({baseURL: 'http://127.0.0.1:8000', //  API 基础 URLtimeout: 5000, // 请求超时时间
});// 请求拦截器
service.interceptors.request.use(config => {// 检查是否需要添加 token,排除登录和注册接口if (config.url !== '/login' && config.url !== '/register') {const token = localStorage.getItem('token');if (token) {config.headers['Authorization'] = `Bearer ${token}`;}}return config;},error => {console.error('请求错误:', error);return Promise.reject(error);}
);// 响应拦截器
service.interceptors.response.use(response => {// 对成功响应的数据进行处理return response.data;},error => {// 对响应错误进行统一处理if (error.response) {const status = error.response.status;if (status === 401) {// 令牌过期,跳转到登录页console.log('令牌过期,跳转到登录页');localStorage.removeItem('token');window.location.href = '/login';} else if (status === 403) {// 无权限访问console.log('无权限访问');} else if (status === 500) {// 服务器内部错误console.log('服务器内部错误');} else {// 其他错误console.log('其他错误:', error.response.data.message);}} else if (error.request) {// 请求已发出,但未收到响应console.log('请求已发出,但未收到响应');} else {// 请求配置错误console.log('请求配置错误:', error.message);}return Promise.reject(error);}
);// 定义登录接口
export function login(data) {return service({url: '/login', // 你的登录接口 URLmethod: 'post',data,}).then(response => {// 打印完整的响应对象console.log('登录响应:', response);// 尝试访问 access_token 之前,先检查 response.data 是否存在if (response) {console.log('响应数据:', response);// 登录成功后,将 token 存储到 localStorageconst token = response.access_token;const userId = response.user_id;if (token) {localStorage.setItem('token', token);localStorage.setItem('userId', userId);} else {console.warn('响应中没有 access_token');}} else {console.error('响应数据是 undefined');}return response; // 返回响应数据}).catch(error => {// 如果请求失败,也打印错误信息if (error.response) {// 请求已发出,但服务器响应的状态码不在 2xx 范围内console.error('登录失败,服务器返回错误信息:', error.response.data);console.error('登录失败,服务器返回状态码:', error.response.status);} else if (error.request) {// 请求已发出,但没有收到任何响应console.error('登录失败,请求已发出但没有收到响应:', error.request);} else {// 发送请求时发生了某些问题console.error('登录失败,发送请求时发生错误:', error.message);}return Promise.reject(error);});
}// 定义注册接口
export function register(data) {return service({url: '/register', // 你的注册接口 URLmethod: 'post',data,}).catch(error => {console.error('注册失败:', error);return Promise.reject(error);});
}

5.router里面引用各个界面的地址:src\router\index.js

import { createRouter, createWebHistory } from "vue-router";
import LoginView from "../views/login/index.vue";
import RegisterView from "../views/register/index.vue";
import HomeView from "../views/home/index.vue";const router = createRouter({history: createWebHistory(import.meta.env.BASE_URL),routes: [{path: "/login",name: "login",component: LoginView,},{path: "/",redirect: "/login", // 重定向到登录页面},{path: "/register",name: "register",component: RegisterView,},{path: "/home",name: "home",component: HomeView,},],
});export default router;

6.只要在router里面注册过的页面,如/register,在任何地方,直接写:
<router-link to='/register'>注册账号</router-link>
即可跳转


 

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

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

相关文章

【顶刊TPAMI 2025】多头编码(MHE)之极限分类 Part 4:MHE表示能力

目录 1 MHE的表示能力2 基于Frobenius-范数的低秩逼近3 基于CE的低秩近似 论文&#xff1a;Multi-Head Encoding for Extreme Label Classification 作者&#xff1a;Daojun Liang, Haixia Zhang, Dongfeng Yuan and Minggao Zhang 单位&#xff1a;山东大学 代码&#xff1a;h…

SRS 服务器入门:实时流媒体传输的理想选择

在当今视频流媒体需求爆炸式增长的时代&#xff0c;如何选择一款高效、稳定且功能强大的流媒体服务器成为了许多开发者和企业关注的焦点。而 SRS&#xff08;Simple Realtime Server&#xff09;作为一款开源的流媒体服务器&#xff0c;以其卓越的性能和灵活的功能&#xff0c;…

IoC设计模式详解:控制反转的核心思想

前言&#xff1a;在软件开发中&#xff0c;设计模式是一种经过验证的、在特定场景下能有效解决问题的解决方案。控制反转&#xff08;Inversion of Control&#xff0c;IoC&#xff09; 作为一种设计模式&#xff0c;通过让程序的控制流和对象管理反转&#xff0c;从而使得代码…

Swift White Hawkstrider

Swift White Hawkstrider 迅捷白色陆行鸟 Swift White Hawkstrider - Item - 魔兽世界怀旧服TBC数据库_WOW2.43数据库_70级《燃烧的远征》数据库 Kaelthas Sunstrider (1) <Lord of the Blood Elves> 凯尔萨斯逐日者. 掉落 [80圣骑士][Alonsus-加丁][诺森德冒险补给品…

2025 年前端新技术如何塑造未来开发生态?

开发领域&#xff1a;前端开发 | AI 应用 | Web3D | 元宇宙 技术栈&#xff1a;JavaScript、React、ThreeJs、WebGL、Go 经验经验&#xff1a;6 年 前端开发经验&#xff0c;专注于图形渲染和 AI 技术 开源项目&#xff1a;AI智简未来、晓智元宇宙、数字孪生引擎 大家好&#x…

2024 年 MySQL 8.0.40 安装配置、Workbench汉化教程最简易(保姆级)

首先到官网上下载安装包&#xff1a;http://www.mysql.com 点击下载&#xff0c;拉到最下面&#xff0c;点击社区版下载 windows用户点击下面适用于windows的安装程序 点击下载&#xff0c;网络条件好可以点第一个&#xff0c;怕下着下着断了点第二个离线下载 双击下载好的安装…

在大型语言模型LLM中使用私有数据

目录 一、说明 二、训练&#xff1f; 三、及时工程 四、构建系统提示 五、数据人性化 六、我的数据安全吗&#xff1f; 一、说明 随着 2023 年大型语言模型的大规模兴起&#xff0c;许多“基于对话”的服务应运而生&#xff0c;使用户能够通过自然对话与数据和其他产品进行交互…

字玩FontPlayer开发笔记6 Tauri2设置菜单

字玩FontPlayer开发笔记6 Tauri2设置菜单 字玩FontPlayer是笔者开源的一款字体设计工具&#xff0c;使用Vue3 ElementUI开发&#xff0c;源代码&#xff1a; github: https://github.com/HiToysMaker/fontplayer gitee: https://gitee.com/toysmaker/fontplayer 笔记 字玩目…

Chapter4.1 Coding an LLM architecture

文章目录 4 Implementing a GPT model from Scratch To Generate Text4.1 Coding an LLM architecture 4 Implementing a GPT model from Scratch To Generate Text 本章节包含 编写一个类似于GPT的大型语言模型&#xff08;LLM&#xff09;&#xff0c;这个模型可以被训练来生…

linux-centos-安装miniconda3

参考&#xff1a; 最新保姆级Linux下安装与使用conda&#xff1a;从下载配置到使用全流程_linux conda-CSDN博客 https://blog.csdn.net/qq_51566832/article/details/144113661 Linux上删除Anaconda或Miniconda的步骤_linux 删除anaconda-CSDN博客 https://blog.csdn.net/m0_…

Speech Recognition vs. Voice Recognition | 语音识别工作原理 | 模型训练 | 应用

注&#xff1a;机翻&#xff0c;未校。 Speech Recognition 与 Voice Recognition 剑桥词典 speech recognition&#xff0c;语音识别 voice recognition&#xff0c;声音识别 Speech vs. Voice - What’s the Difference? | This vs. That https://thisvsthat.io/speech-vs…

外网访问本地部署的 VMware ESXi 服务

本文将详细的介绍如何在本地部署的 VMware ESXi 以及结合路由侠内网穿透技术&#xff0c;实现外网远程访问和管理本地 ESXi 服务器的具体步骤和配置方法。 第一步&#xff0c;本地部署 VMware ESXi 1&#xff0c;先去官网下载 ESXI &#xff1a;网址&#xff1a;Home - Suppor…

如何配置【Docker镜像】加速器+【Docker镜像】的使用

一、配置Docker镜像加速器 1. 安装/升级容器引擎客户端​ 推荐安装1.11.2以上版本的容器引擎客户端 2. 配置镜像加速器​ 针对容器引擎客户端版本大于1.11.2的用户 以root用户登录容器引擎所在的虚拟机 修改 "/etc/docker/daemon.json" 文件&#xff08;如果没有…

基于Spring Boot的车辆违章信息管理系统(LW+源码+讲解)

专注于大学生项目实战开发,讲解,毕业答疑辅导&#xff0c;欢迎高校老师/同行前辈交流合作✌。 技术范围&#xff1a;SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容&#xff1a;…

如何提高软件研发效率?

如何提高软件研发效率&#xff1f; 概述 莫等闲&#xff0c;白了少年头&#xff0c;空悲切。近些年来在大家眼里形成了“卷王”的印象&#xff0c;第一次听到这一的评价感觉有点不好意思&#xff0c;之后回想感觉挺自豪的&#xff0c;说明现在的我没有浪费光阴&#xff0c;我一…

jenkins入门--安装jenkins

下载地址https://www.jenkins.io/ jdk 安装 &#xff1a;Jenkins需要安装对应版本的jdk,我在安装过程中显示需要21,17 Java Downloads | Oracle jenkins安装过程参考全网最清晰Jenkins安装教程-windows_windows安装jenkins-CSDN博客 安装完成后&#xff0c;浏览器输入127.0.…

单片机-独立按键矩阵按键实验

1、按键介绍 按键管脚两端距离长的表示默认是导通状态&#xff0c;距离短的默认是断开状态&#xff0c; 如果按键按下&#xff0c;初始导通状态变为断开&#xff0c;初始断开状态变为导通 我们开发板是采用软件消抖&#xff0c;一般来说一个简单的按键消抖就是先读取按键的状…

一文详解YOLOv8多模态目标检测(可见光+红外图像,基于Ultralytics官方代码实现),轻松入门多模态检测领域!

目录 1. 文章主要内容2. 相关说明3. 基于YOLOv8的多模态目标检测3.1 启动运行YOLOv8多模态代码3.2 详解代码流程&#xff08;重点&#xff09;3.2.1 train.py文件&#xff08;入口&#xff09;3.2.2 engine\model.py文件3.2.3 engine\trainer.py文件3.2.4 models\yolo\detect\t…

【顶刊TPAMI 2025】多头编码(MHE)之极限分类 Part 3:算法实现

目录 1 三种多头编码&#xff08;MHE&#xff09;实现1.1 多头乘积&#xff08;MHP&#xff09;1.2 多头级联&#xff08;MHC&#xff09;1.3 多头采样&#xff08;MHS&#xff09;1.4 标签分解策略 论文&#xff1a;Multi-Head Encoding for Extreme Label Classification 作者…

【AWS SDK PHP】This operation requests `sigv4a` auth schemes 问题处理

使用AWS SDK碰到的错误&#xff0c;其实很简单&#xff0c;要装个扩展库 保持如下 Fatal error: Uncaught Aws\Auth\Exception\UnresolvedAuthSchemeException: This operation requests sigv4a auth schemes, but the client currently supports sigv4, none, bearer, sigv4-…