当前位置: 首页 > news >正文

vue3学习日记5 - 项目起步

 最近发现职场前端用的框架大多为vue,所以最近也跟着黑马程序员vue3的课程进行学习,以下是我的学习记录

视频网址:

Day2-11.项目起步-静态资源引入和ErrorLen安装_哔哩哔哩_bilibili

学习日记:

vue3学习日记1 - 环境搭建-CSDN博客

vue3学习日记2 - 组合式API基础学习-CSDN博客

vue3学习日记3 - 组合式API练习小案例-CSDN博客

vue3学习日记4 - Pinia-CSDN博客

一、项目初始化

1、创建一个vue项目

2、安装相关依赖

3、运行项目

4、创建文件夹

二、git管理

1、概述

Git 是一个功能强大的工具,特别适合需要团队协作、版本控制以及高效管理代码历史的场景。由于它的分布式特性和高效的操作,Git 已经成为现代软件开发中最常用的版本控制系统之一。

基于create-vue创建出来的项目默认没有初始化git仓库,需要我们手动初始化

2、执行命令并完成提交

1、git init

初始化一个新的git仓库

2、git add .

将文件修改为待提交的状态,git add 只是将修改暂时记录在暂存区,真正将改动永久保存到 Git 仓库中,还需要执行 git commit 命令。

注意:后面要加" . "

3、git commit -m "init"

提交文件的更改到 Git 仓库,并附上提交信息。

三、别名路径联想设置

1、什么是别名路径联想提示?

在编写代码的工程中,一旦输入@/,VSCode会立刻联想出src下的所有目录和子文件,同一文件路径访问不容易出错

2、配置别名联想设置

1、正常情况下输入“@/”没有任何反应

2、在项目根目录下新增jsconfig.json文件

新增后,可能会自动到vite.config.js下

{"compilerOptions": {"baseUrl": "./","paths": {"@/*":["src/*"]}}
}

3、配置完成

4、总结

在这只是做联想提示,并没有转换路径

实际路径转换是在文件vite.config.js下

四、elementPlus按需导入

官网:

安装 | Element Plus (element-plus.org)

1、安装包管理器

根据官网API可知输入他给的命令进行安装

输入命令运行结果

2、安装配套的插件

安装成功后,可以在以下文件中找到

3、修改配置文件

根据官网提示编写vite.config.ts相关配置

import { fileURLToPath, URL } from 'node:url'import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import vueDevTools from 'vite-plugin-vue-devtools'// elementPlus插件导入
import AutoImport from 'unplugin-auto-import/vite'
import Components from 'unplugin-vue-components/vite'
import { ElementPlusResolver } from 'unplugin-vue-components/resolvers'// https://vite.dev/config/
export default defineConfig({plugins: [vue(),vueDevTools(),AutoImport({resolvers: [ElementPlusResolver()],}),Components({resolvers: [ElementPlusResolver()],}),],resolve: {alias: {'@': fileURLToPath(new URL('./src', import.meta.url))},},
})

4、重新运行一下项目

5、检测elementPlue是否导入成功

<script setup>
</script><template><el-button type="success">Success</el-button>
</template>

运行结果

五、elementPlus主题色修改

1、安装scss

输入命令

npm install sass

2、准备定制样式文件

在文件夹style下,新建文件夹element,在此文件夹下新建文件index.scss

index.scss内容

// styles/element/index.scss
/* 只需要重写你需要的即可 */
@forward 'element-plus/theme-chalk/src/common/var.scss' with ($colors: ('primary': (// 主色'base': #27ba9b,),'success': (// 成功色'base': #1dc779,),'warning': (// 警告色'base': #ffb302,),'danger': (// 危险色'base': #e26237,),'error': (// 错误色'base': #cf4444,),),
);

3、通知Element采用scss语言

4、自动导入样式化进行覆盖

import { fileURLToPath, URL } from 'node:url'import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import vueDevTools from 'vite-plugin-vue-devtools'// elementPlus插件导入
import AutoImport from 'unplugin-auto-import/vite'
import Components from 'unplugin-vue-components/vite'
import { ElementPlusResolver } from 'unplugin-vue-components/resolvers'// https://vite.dev/config/
export default defineConfig({plugins: [vue(),vueDevTools(),AutoImport({resolvers: [ElementPlusResolver()],}),Components({resolvers: [// 配置elementPlus采用sass样式配色系统ElementPlusResolver({ importStyle:"sass"})],}),],resolve: {alias: {'@': fileURLToPath(new URL('./src', import.meta.url))},},css:{preprocessorOptions:{scss:{// 自动导入定制化样式文件进行样式覆盖additionalData:`@use "@/styles/element/index.scss" as *;`}}}
})

5、测试

重新运行项目,按钮颜色改变,修改成功

六、axios相关配置

1、安装axios

命令行中输入" npm install axios "

2、axios基础封装

在utils文件夹下新建文件http.js

// axios基础封装// 导入axios
import axios from "axios";
// 创建一个axios实例
const httpInstance = axios.create({// 设置接口基地址baseURL:'http://pcapi-xiaotuxian-front-devtest.itheima.net',// 设置超时时间timeout:5000
})// 拦截器// axios请求拦截器
httpInstance.interceptors.request.use(config => {return config
}, e => Promise.reject(e))// axios响应式拦截器
httpInstance.interceptors.response.use(res => res.data, e => {return Promise.reject(e)
})// 导出
export default httpInstance

3、API

在api文件夹下testAPI.js

// axios基础封装// 导入axios
import axios from "axios";
// 创建一个axios实例
const httpInstance = axios.create({// 设置接口基地址baseURL:'http://pcapi-xiaotuxian-front-devtest.itheima.net',// 设置超时时间timeout:5000
})// 拦截器// axios请求拦截器
httpInstance.interceptors.request.use(config => {return config
}, e => Promise.reject(e))// axios响应式拦截器
httpInstance.interceptors.response.use(res => res.data, e => {return Promise.reject(e)
})// 导出
export default httpInstance

4、测试

在main.js中调用方法

// 测试接口函数
import { getCategory } from '@/apis/testAPI'
getCategory().then( res => {console.log(res)
})

5、运行结果

6、问题小结

如果项目里面不同的业务模块需要的接口地址不同,该如何来做?

axios.create() 方法可以执行多次,每次执行都会生成一个新的实例,比如:
const http1 = axios.create({ baseURL: 'url1' })
const http2 = axios.create({ baseURL: 'url2' })

七、项目整体路由设计

1、一级路由

设计首页和登录页的路由(一级路由)

1、路由设计原则

找内容切换的区域,如果是页面整体切换,则为一级路由

2、删除文件夹views下面所有的文件

3、在views文件夹下建立文件夹Layout和Login,并且分别在底下建立文件index.vue

Layout下index.vue内容
<template><div>我是首页</div>
</template>
Login下index.vue内容
<template><div>我是登录页</div>
</template>

你会发现一直报错,将鼠标放上去报错信息如下

原因是,vue3规定命名必须有两个单词组成,index不符合规范,要解决此问题,只需要让其不强制要求组件命名即可

4、修改router文件夹下index.js

import { createRouter, createWebHistory } from 'vue-router'
import Login from '@/views/Login/index.vue'
import Layout from '@/views/Layout/index.vue'/***  createRouter : 创建router实例对象*  createWebHistory :创建history模式的路由*/
const router = createRouter({history: createWebHistory(import.meta.env.BASE_URL),routes: [{path: '/',component: Layout,},{path: '/login',component:Login},],
})export default router

5、在App.vue使用

<script setup>
</script><template><!-- 引入路由 --><router-view/>
</template>

6、运行结果

2、二级路由

1、路由设计原则

找内容切换的区域,如果是在一级路由页的内部切换,则为二级路由

2、在views文件夹下建立文件夹Home和Categorize,并且分别在底下建立文件index.vue

3、在routes文件夹下的index.js添加二级路由

import { createRouter, createWebHistory } from 'vue-router'
import Login from '@/views/Login/index.vue'
import Layout from '@/views/Layout/index.vue'
import Home from '@/views/Home/index.vue'
import Categorize from '@/views/Categorize/index.vue'/***  createRouter : 创建router实例对象*  createWebHistory :创建history模式的路由*/
const router = createRouter({history: createWebHistory(import.meta.env.BASE_URL),routes: [{path: '/',component: Layout,children:[{// 当默认显示时,直接滞空就好path:'',component:Home},{path:'categorize',component:Categorize}]},{path: '/login',component:Login},],
})export default router

4、在Layout文件夹下index.js中添加二级路由入口

<template><div>我是首页</div><router-view/>
</template>

5、运行结果

3、问题小结

1、路由设计的依据是什么

内容切换的方式

2、默认二级路由如何进行设置

path配置置空

八、静态资源存放

图片资源 : 把images文件夹放到assets目录下 样式资源 : 把common.scss文件放到styles目录下

可以安装以下插件,编写代码时显示报错信息

九、scss文件的自动导入

在项目里一些组件共享的色值会以scss变量的方式统一放到一个名为var.scss的文件中,正常组件中使用,需要先导入scss文件,再使用内部的变量,比较繁琐,自动导入可以免去手动导入的步骤,直接使用内部的变量

1、在style文件夹下新建文件var.scss

$xtxColor:#27ba9b; 
$helpColor:#e26237; 
$sucColor:#1dc779; 
$warnColor:#ffb302; 
$priceColor:#cf4444

2、修改配置文件

3、测试(App.vue)

<script setup>
</script><template><!-- 引入路由 --><router-view/><div class="sc">哈哈哈哈哈</div>
</template><style lang="scss" scoped>
.sc{color: $warnColor;
}
</style>

4、运行结果

问题小结

1、git初始化提交报错

原因

git没有配置用户名和邮箱地址

解决

设置邮箱和用户名

运行以下命令可查看设置是否正确

git config --global user.name git config --global user.email

运行结果

相关文章:

vue3学习日记5 - 项目起步

最近发现职场前端用的框架大多为vue&#xff0c;所以最近也跟着黑马程序员vue3的课程进行学习&#xff0c;以下是我的学习记录 视频网址&#xff1a; Day2-11.项目起步-静态资源引入和ErrorLen安装_哔哩哔哩_bilibili 学习日记&#xff1a; vue3学习日记1 - 环境搭建-CSDN博…...

java导出pdf文件

java导出pdf&#xff0c;前端下载 1、制作pdf模板2、获取pdf导出中文需要的文件3、实现4、前端发起请求并生成下载链接 使用注意点 因为原来制作的pdf表单内容过于复杂&#xff0c;下面代码只包含前两行的操作。 本次操作需要前端向后端发起请求&#xff0c;后端返回数据给前端…...

【MySQL学习笔记】MySQL视图View

视图View 1、视图的基础语法2、检查选项3、视图的更新4、视图的作用 视图&#xff08;View&#xff09;是一种虚拟存在的表。视图中的数据并不在数据库中实际存在&#xff0c;行和列数据来自定义视图的查询中使用的表&#xff0c;并且是在使用视图时动态生成的。 通俗的讲&…...

从玩具到工业控制--51单片机的跨界传奇【2】

咱们在上一篇博客里面讲解了什么是单片机《单片机入门》&#xff0c;让大家对单片机有了初步的了解。我们今天继续讲解一些有关单片机的知识&#xff0c;顺便也讲解一下我们单片机用到的C语言知识。如果你对C语言还不太了解的话&#xff0c;可以看看博主的C语言专栏哟&#xff…...

【Redis】初识Redis

目录 Redis简介 Redis在内存中存储数据 Redis数据库中的应用 Redis缓存中的应用 Redis消息中间件 尾言 Redis简介 如下是Redis官网中&#xff0c;对Redis的一段描述 在这段描述中&#xff0c;我们提取如下关键要点&#xff1a; Redis主要用于在内存中存储数据Redis可…...

docker虚拟机平台未启用问题

在终端中输入如下代码&#xff0c;重启电脑即可 Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform 对于Docker Desktop - Unexpected WSL error问题 参考链接 解决WSL2与docker冲突问题...

《零基础Go语言算法实战》【题目 2-22】Go 调度器优先调度问题

《零基础Go语言算法实战》 【题目 2-22】Go 调度器优先调度问题 下面代码的输出是什么&#xff1f;请说明原因。 package main import ( "fmt" "runtime" "sync" ) func main() { runtime.GOMAXPROCS(1) wg : sync.WaitGroup{} wg.Add(10)…...

关于使用FastGPT 摸索的QA

近期在通过fastGPT&#xff0c;创建一些基于特定业务场景的、相对复杂的Agent智能体应用。 工作流在AI模型的基础上&#xff0c;可以定义业务逻辑&#xff0c;满足输出对话之外的需求。 在最近3个月来的摸索和实践中&#xff0c;一些基于经验的小问题点&#xff08;自己也常常…...

关于H5复制ios没有效果

问题场景&#xff1a;今天遇到这样一个问题&#xff0c;需要从后端接口获取到的值进行复制&#xff0c;且不能提现调用获取值&#xff0c;因为是一个数据列表&#xff0c;每个列表元素需要当场点击调用接口获取值进行复制&#xff0c;本来以为很简单的一个需求&#xff0c;当做…...

【STM32-学习笔记-3-】TIM定时器

文章目录 TIM定时器Ⅰ、TIM定时器函数Ⅱ、TIM_TimeBaseInitTypeDef结构体参数①、TIM_ClockDivision②、TIM_CounterMode③、TIM_Period④、TIM_Prescaler⑤、TIM_RepetitionCounter Ⅱ、定时器配置Ⅲ、定时器外部中断NVIC配置 TIM定时器 Ⅰ、TIM定时器函数 // 将定时器寄存器…...

EMS专题 | 守护数据安全:数据中心和服务器机房环境温湿度监测

您需要服务器机房温度监测解决方案吗&#xff1f; 服务器机房是企业中用于存储、管理和维护服务器及其相关组件的设施。服务器机房通常位于数据中心内&#xff0c;是一个专门设计的物理环境&#xff0c;旨在确保服务器的稳定运行和数据的安全性。服务器机房主要起到存储和管理数…...

Vue JavaScript 小写数字金额转换成大写汉字(附编程思路)

一、编程思路&#xff08;本案例只考虑9999万亿以内的数字转换&#xff0c;相信这个金额对于人民币来说已经足够庞大了&#xff0c;超过此数值的金额不保证转换汉字的准确性&#xff0c;且最多精确到小数点后四位&#xff09;&#xff1a; 1、将示例&#xff08;不管是…...

【自动化测试】—— Appium安装配置保姆教程(图文详解)

目录 一. 环境准备 二. JDK安装 1. 下载JDK 2. 安装JDK 3. 配置环境 4. 验证安装 三. Android SDK安装 1. 下载Android SDK 2. 安装Android SDK 3. 安装工具 4. 配置环境 5. 验证安装 四. NodeJS安装 1. 下载NodeJS 2. 安装NodeJS 3. 验证安装 4. 安装淘宝镜像…...

贪心算法详细讲解(沉淀中)

文章目录 1. 什么是贪心算法&#xff1f;&#xff08;贪婪鼠目寸光&#xff09;经典例题1.1.1 找零问题1.1.2最小路径和1.1.3 背包问题 2.贪心算法的特点2.1 证明例1 3.学习贪心的方向心得体会 1. 什么是贪心算法&#xff1f;&#xff08;贪婪鼠目寸光&#xff09; 贪心策略&a…...

RabbitMQ中有哪几种交换机类型?

大家好&#xff0c;我是锋哥。今天分享关于【RabbitMQ中有哪几种交换机类型&#xff1f;】面试题。希望对大家有帮助&#xff1b; RabbitMQ中有哪几种交换机类型&#xff1f; 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 在RabbitMQ中&#xff0c;交换机&#xf…...

STM32特殊功能引脚详解文章·STM32特殊功能引脚能当作GPIO使用嘛详解!!!

目录 STM32特殊功能引脚 使用STM32特殊功能引脚函数 禁止搬运&#xff0c;仅供学习&#xff0c;编写不易&#xff0c;感谢理解&#xff01;&#xff01;&#xff01; STM32特殊功能引脚 本篇详解文章仅以STM32F103C8T6芯片来讲解&#xff0c;STM32芯片除了普通的GPIO引脚以外…...

Qt QComboBox的QSS美化

美化效果 QSS设置 /*QComboBox风格设置*/ QComboBox#comboBox_1 { border:2px solid #f3f3f3;/*设置边框线宽*/ background-color:rgb(237, 242, 255);/*背景颜色*/ border-radius:5px;/*圆角*/ padding: 1px 2px 1px 2px;/*针对组合框中的文本内容*/ min-width:2em;/*组合框…...

计算机视觉算法实战——实时车辆检测和分类(主页有相关源码)

✨个人主页欢迎您的访问 ✨期待您的三连 ✨ ✨个人主页欢迎您的访问 ✨期待您的三连 ✨ ✨个人主页欢迎您的访问 ✨期待您的三连✨ ​ ​​​​​​​​​​​​​​​​​​ 1. 领域介绍✨✨ 实时车辆检测和分类是计算机视觉中的一个重要应用领域&#xff0c;旨在从视频流或…...

what?ngify 比 axios 更好用,更强大?

文章目录 前言一、什么是ngify&#xff1f;二、npm安装三、发起请求3.1 获取 JSON 数据3.2 获取其他类型的数据3.3 改变服务器状态3.4 设置 URL 参数3.5 设置请求标头3.6 与服务器响应事件交互3.7 接收原始进度事件3.8 处理请求失败3.9 Http Observables 四、更换 HTTP 请求实现…...

安装虚拟机VMware遇到的问题

问题1&#xff1a;进入如下界面&#xff0c;不知道如何操作 解决办法 键盘⬇️&#xff0c;选择“Reset the system”回车 问题2&#xff1a;系统存放位置我给放在了VMware安装目录&#xff0c;具体D:\software\VMware\Windows安装不行 解决办法&#xff1a;D:\software\virt…...

CTF show Web 红包题第六弹

提示 1.不是SQL注入 2.需要找关键源码 思路 进入页面发现是一个登录框&#xff0c;很难让人不联想到SQL注入&#xff0c;但提示都说了不是SQL注入&#xff0c;所以就不往这方面想了 ​ 先查看一下网页源码&#xff0c;发现一段JavaScript代码&#xff0c;有一个关键类ctfs…...

ubuntu搭建nfs服务centos挂载访问

在Ubuntu上设置NFS服务器 在Ubuntu上&#xff0c;你可以使用apt包管理器来安装NFS服务器。打开终端并运行&#xff1a; sudo apt update sudo apt install nfs-kernel-server创建共享目录 创建一个目录用于共享&#xff0c;例如/shared&#xff1a; sudo mkdir /shared sud…...

聊聊 Pulsar:Producer 源码解析

一、前言 Apache Pulsar 是一个企业级的开源分布式消息传递平台&#xff0c;以其高性能、可扩展性和存储计算分离架构在消息队列和流处理领域独树一帜。在 Pulsar 的核心架构中&#xff0c;Producer&#xff08;生产者&#xff09; 是连接客户端应用与消息队列的第一步。生产者…...

测试markdown--肇兴

day1&#xff1a; 1、去程&#xff1a;7:04 --11:32高铁 高铁右转上售票大厅2楼&#xff0c;穿过候车厅下一楼&#xff0c;上大巴车 &#xffe5;10/人 **2、到达&#xff1a;**12点多到达寨子&#xff0c;买门票&#xff0c;美团/抖音&#xff1a;&#xffe5;78人 3、中饭&a…...

Nuxt.js 中的路由配置详解

Nuxt.js 通过其内置的路由系统简化了应用的路由配置&#xff0c;使得开发者可以轻松地管理页面导航和 URL 结构。路由配置主要涉及页面组件的组织、动态路由的设置以及路由元信息的配置。 自动路由生成 Nuxt.js 会根据 pages 目录下的文件结构自动生成路由配置。每个文件都会对…...

鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院查看报告小程序

一、开发环境准备 ​​工具安装​​&#xff1a; 下载安装DevEco Studio 4.0&#xff08;支持HarmonyOS 5&#xff09;配置HarmonyOS SDK 5.0确保Node.js版本≥14 ​​项目初始化​​&#xff1a; ohpm init harmony/hospital-report-app 二、核心功能模块实现 1. 报告列表…...

Android Bitmap治理全解析:从加载优化到泄漏防控的全生命周期管理

引言 Bitmap&#xff08;位图&#xff09;是Android应用内存占用的“头号杀手”。一张1080P&#xff08;1920x1080&#xff09;的图片以ARGB_8888格式加载时&#xff0c;内存占用高达8MB&#xff08;192010804字节&#xff09;。据统计&#xff0c;超过60%的应用OOM崩溃与Bitm…...

CMake控制VS2022项目文件分组

我们可以通过 CMake 控制源文件的组织结构,使它们在 VS 解决方案资源管理器中以“组”(Filter)的形式进行分类展示。 🎯 目标 通过 CMake 脚本将 .cpp、.h 等源文件分组显示在 Visual Studio 2022 的解决方案资源管理器中。 ✅ 支持的方法汇总(共4种) 方法描述是否推荐…...

push [特殊字符] present

push &#x1f19a; present 前言present和dismiss特点代码演示 push和pop特点代码演示 前言 在 iOS 开发中&#xff0c;push 和 present 是两种不同的视图控制器切换方式&#xff0c;它们有着显著的区别。 present和dismiss 特点 在当前控制器上方新建视图层级需要手动调用…...

第7篇:中间件全链路监控与 SQL 性能分析实践

7.1 章节导读 在构建数据库中间件的过程中&#xff0c;可观测性 和 性能分析 是保障系统稳定性与可维护性的核心能力。 特别是在复杂分布式场景中&#xff0c;必须做到&#xff1a; &#x1f50d; 追踪每一条 SQL 的生命周期&#xff08;从入口到数据库执行&#xff09;&#…...