前端 vue 第三方工具包详解-小白版

恭喜你迈入Vue世界!😄 对于前端小白,掌握这些常用第三方包能极大提升开发效率和项目质量。以下是Vue生态中必备的第三方包及小白友好式用法解析:


🧱 一、基础工具包(每个项目必装)

1. Vue Router - 路由管理

npm install vue-router@4

功能:实现页面跳转、嵌套路由、路由守卫
用法

// router/index.js
import { createRouter, createWebHistory } from 'vue-router'const routes = [{ path: '/', component: () => import('@/views/Home.vue'), // 懒加载children: [{ path: 'detail', component: Detail } // 嵌套路由]},{ path: '/login', component: Login }
]const router = createRouter({history: createWebHistory(),routes
})// 使用路由守卫(如登录验证)
router.beforeEach((to, from) => {if (to.path === '/admin' && !isLoggedIn) return '/login'
})

2. Pinia - 状态管理(比Vuex更简单!)

npm install pinia

功能:跨组件共享数据(如用户信息、全局配置)
用法

// stores/user.js
import { defineStore } from 'pinia'export const useUserStore = defineStore('user', {state: () => ({ name: '张三', age: 25 }),actions: {updateName(newName) {this.name = newName // 修改状态}},getters: {userInfo: (state) => `姓名:${state.name},年龄:${state.age}`}
})// 组件中使用
<script setup>
import { useUserStore } from '@/stores/user'const user = useUserStore()
</script><template><h1>{{ user.name }}</h1><button @click="user.updateName('李四')">改名</button><p>{{ user.userInfo }}</p>
</template>

🌈 二、UI组件库(选其一即可)

1. Element Plus (阿里出品)

npm install element-plus

特点:组件丰富、中文文档清晰
用法

<template><el-button type="primary">主要按钮</el-button><el-input v-model="inputVal" placeholder="请输入"/>
</template><script setup>
import { ElButton, ElInput } from 'element-plus'
import 'element-plus/dist/index.css'
</script>

2. Ant Design Vue (蚂蚁金服)

npm install ant-design-vue@4

特点:企业级设计规范,专业感强


🛠️ 三、实用工具包

1. Axios - HTTP请求库

npm install axios

用法

// utils/request.js
import axios from 'axios'
const service = axios.create({baseURL: '/api', // 接口前缀timeout: 5000    // 超时时间
})// 组件中使用
service.get('/user/list').then(res => {console.log(res.data)
})

2. Day.js - 日期处理(轻量版Moment.js)

npm install dayjs

用法

import dayjs from 'dayjs'dayjs().format('YYYY-MM-DD') // 2023-07-28
dayjs().add(1, 'month')      // 加1个月

3. Lodash - 工具函数库

npm install lodash

常用函数

import { cloneDeep, debounce } from 'lodash'// 深拷贝对象
const newObj = cloneDeep(oldObj)// 防抖(搜索框常用)
input.oninput = debounce(() => {searchAPI(input.value)
}, 500)

🚀 四、开发辅助包

1. Vite - 极速构建工具

# 创建Vue项目
npm create vite@latest my-project -- --template vue

优势:比Webpack快10倍以上!支持热更新

2. ESLint + Prettier - 代码规范

npm install eslint eslint-plugin-vue prettier -D

.eslintrc.js配置:

module.exports = {extends: ['plugin:vue/vue3-recommended', 'prettier'],rules: {'vue/multi-word-component-names': 'off' // 允许单文件组件名}
}

3. VueUse - 常用功能hooks

npm install @vueuse/core

开箱即用的组合式函数

<script setup>
import { useMouse, useLocalStorage } from '@vueuse/core'// 跟踪鼠标位置
const { x, y } = useMouse()// 本地存储
const theme = useLocalStorage('theme', 'light')
</script>

📊 五、可视化 & 图表

1. ECharts - 专业图表库

npm install echarts

用法

<template><div ref="chartDom" style="height:400px"></div>
</template><script setup>
import * as echarts from 'echarts'
import { onMounted, ref } from 'vue'const chartDom = ref(null)onMounted(() => {const chart = echarts.init(chartDom.value)chart.setOption({tooltip: {},xAxis: { data: ['A', 'B', 'C'] },yAxis: {},series: [{ data: [10, 22, 18], type: 'bar' }]})
})
</script>

🧪 六、测试工具

1. Vitest - 单元测试

npm install vitest @vue/test-utils -D

测试用例示例

// Counter.spec.js
import { mount } from '@vue/test-utils'
import Counter from './Counter.vue'test('increments counter', async () => {const wrapper = mount(Counter)await wrapper.find('button').trigger('click')expect(wrapper.text()).toContain('Count: 1')
})

💡 小白学习路线建议:

  1. 先掌握基础三件套:Vue Router + Pinia + Axios
  2. 选一个UI库:Element Plus 或 Ant Design Vue
  3. 工具包按需学习:Day.js(日期) > Lodash(工具) > ECharts(图表)
  4. 搭建项目脚手架:用Vite创建工程,并配置ESLint
  5. 进阶学习:VueUse >> 测试工具

终极提示: 每个包的官方文档是最好的学习资源,遇到问题优先查看GitHub issues和官方示例
⚠️ 避免盲目安装:先用原生方法实现,发现痛点再用第三方包解决!

在这里插入图片描述

这些工具组合起来,就能构建出高性能、易维护的现代Vue应用!接下来动手创建你的第一个Vue项目试试吧~ ✨

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

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

相关文章

解决mac下git pull、push需要输入密码

解决方法&#xff1a; 1.强制配置 SSH 自动加载钥匙串 编辑 SSH 配置文件 vi ~/.ssh/configHost *AddKeysToAgent yes # 自动将密钥添加到 ssh-agentUseKeychain yes # 明确使用钥匙串存储密码IdentityFile ~/.ssh/id_rsa # 替换为你的私钥路径2.修复 Sh…

内存网格、KV存储和Redis的概念、使用场景及异同

基本概念 内存网格 (In-Memory Data Grid - IMDG) 内存网格是一种分布式内存数据存储技术&#xff0c;具有以下特点&#xff1a;分布式架构 数据跨多个服务器节点分布存储提供线性扩展能力内存优先 主要数据存储在内存中&#xff0c;提供微秒级访问延迟支持持久化作为备份企业级…

【C++算法】87.BFS解决最短路径问题_为高尔夫比赛砍树

文章目录题目链接&#xff1a;题目描述&#xff1a;解法C 算法代码&#xff1a;题目链接&#xff1a; 675. 为高尔夫比赛砍树 题目描述&#xff1a; 解法 注意&#xff1a;砍树要从低到高砍。 砍掉1&#xff0c;从1到5到2 砍掉2&#xff0c;从2到5到3 砍掉3&#xff0c;从3到5…

JavaScript内存管理完全指南:从入门到精通

文章目录JavaScript内存管理完全指南&#xff1a;从入门到精通1. 哪些数据类型属于引用类型&#xff08;复杂数据类型&#xff09;&#xff1f;2. 为什么引用类型要存储在堆中&#xff1f;3. 引用类型的内存存储示例示例 1&#xff1a;对象&#xff08;Object&#xff09;示例 …

Linux网络-------3.应⽤层协议HTTP

1.HTTP协议 虽然我们说,应⽤层协议是我们程序猿⾃⼰定的.但实际上,已经有⼤佬们定义了⼀些现成的,⼜⾮常好⽤的应⽤层协议,供我们直接参考使⽤.HTTP(超⽂本传输协议)就是其中之⼀。 在互联⽹世界中&#xff0c;HTTP&#xff08;HyperText Transfer Protocol&#xff0c;超⽂本…

05 GWAS表型数据处理原理

表型数据处理 • 质量性状 – 二分类&#xff1a;可用0 / 1, 1 / 2 数值表示 – 多分类&#xff1a;哑变量赋值&#xff0c;0/1 • 数量性状 – 尽量符合正太分布 – 剔除异常表型值样本 – 多年多点重复观测 – 对于阈值性状&#xff0c;分级数量化或哑变量赋值 R中 shapiro.t…

【Cpolar实现内网穿透】

Cpolar实现内网穿透业务需求第一步&#xff1a;准备工作1、关闭安全软件2、下载所需软件第二步&#xff1a;Nginx的配置第三步&#xff1a;使用cpolar实现内网穿透1、进入 https://dashboard.cpolar.com/get-started 注册&#xff0c;登录&#xff0c;完成身份证的实名认证2、下…

基于 JavaWeb+MySQL 的学院党费缴费系统

基于 JavaWeb 的学院党费缴费系统第 1 章绪论1.1 项目背景当今互联网发展及其迅速&#xff0c;互联网的便利性已经遍及到各行各业&#xff0c;惠及到每一个人&#xff0c;传统的缴费方式都需要每个人前往缴费点陆续排队缴费&#xff0c;不仅浪费大量了个人时间&#xff0c;而且…

LCGL基本使用

LVGC简介 light video Graphics Library (1)纯c与语言编程,将面向对象的思想植入c语言。 (2)轻量化图形库资源,人机交互效果好,在(ios Android QT)移植性较好,但是这些平台对硬件要求较高 lcgc工程搭建 工程源码的获取 获取工程结构 https://github.com/lvgl/lv_po…

嵌入式第十六课!!!结构体与共用体

一、结构体结构体是一种数据类型&#xff0c;它的形式是这样的&#xff1a;struct 结构体名{ 结构体成员语句1&#xff1b;结构体成员语句2&#xff1b;结构体成员语句3&#xff1b;}&#xff1b;举个例子&#xff1a;struct Student {int id;char name[20];float score…

java web 实现简单下载功能

java web 实现简单下载功能 项目结构├── src\ │ ├── a.txt │ └── com\ │ └── demo\ │ └── web\ │ ├── Cookie\ │ ├── download\ │ ├── homework\ │ ├── serv…

虚幻基础:模型穿模

能帮到你的话&#xff0c;就给个赞吧 &#x1f618; 文章目录模型穿模模型之间的阻挡是否正确设置模型是角色的组件&#xff1a;角色的组件不会与场景中其他的物体发生阻挡但可以发生重叠模型穿模 模型之间的阻挡是否正确设置 模型是角色的组件&#xff1a;角色的组件不会与场…

【Linux】linux基础开发工具(二) 编译器gcc/g++、动静态库感性认识、自动化构建-make/Makefile

文章目录一、gcc/g介绍二、gcc编译选项预处理编译汇编链接三个细节三、动静态库感性认识动静态库的优缺点四、自动化构建-make/Makefile背景知识初步上手Makefilemakefile的推导过程makefile语法一、gcc/g介绍 我们之前介绍了编辑器vim&#xff0c;可以让我们在linux上linux系统…

CentOS 7 上使用 Docker 安装 Jenkins 完整教程

目录 前言 准备工作 系统要求 检查系统信息 更新系统 安装Docker 第一步:卸载旧版本Docker(如果存在) 第二步:安装必要的软件包 第三步:添加Docker官方仓库 第四步:安装Docker CE 第五步:启动Docker服务 第六步:验证Docker安装 第七步:配置Docker用户权限…

30.【.NET8 实战--孢子记账--从单体到微服务--转向微服务】--单体转微服务--公共代码--用户上下文会话

在前面的文章中&#xff0c;我们会看到使用ContextSession来获取当前用户的UserId和UserName。这篇文章我们就一起来看看如何实现ContextSession。 一、ContextSession的实现 我们在公共类库SP.Common中创建一个名为ContextSession的类&#xff0c;用于获取当前请求的用户信息。…

BaseDao

#### 10.1 DAO概念> DAO&#xff1a;Data Access Object&#xff0c;数据访问对象。 > > Java是面向对象语言&#xff0c;数据在Java中通常以对象的形式存在。一张表对应一个实体类&#xff0c;一张表的操作对应一个DAO对象&#xff01;>> 在Java操作数据库时&a…

USRP捕获手机/路由器数据传输信号波形(中)

目录&#xff1a; USRP捕获手机/路由器数据传输信号波形&#xff08;上&#xff09; USRP捕获手机/路由器数据传输信号波形&#xff08;中&#xff09; USRP捕获手机/路由器数据传输信号波形&#xff08;下&#xff09; 三、双工通信信号捕获 3.1 信号接收系统 5805e6Hz&a…

使用 Kiro AI IDE 3小时实现全栈应用Admin系统

Hello&#xff0c; 大家好&#xff0c;我是程序员海军, 全栈开发 |AI爱好者 &#xff5c; 独立开发。 之前我是采用Node生态开发的大模型以及MCP Server,大模型开发的生态主要是Python语言&#xff0c;为了更好的学习大模型开发&#xff0c;于是开了新坑。开始学习Python, 以及…

浏览器pdf、image显示

浏览器地址栏 pdf data:application/pdf;base64, data:application/pdf;base64,JVBERi0xLjcKJeLjz9MKMjMgMCBvYmoKPDwv image data:image/jpeg;base64, data:image/jpeg;base64,/9j/4Q3fRXhpZgAATU0AKgAAAAgABwE

《Linux运维总结:银河麒麟V10 SP3启动docker容器报错permission denied》

总结&#xff1a;整理不易&#xff0c;如果对你有帮助&#xff0c;可否点赞关注一下&#xff1f; 更多详细内容请参考&#xff1a;Linux运维实战总结 一、环境信息 二、背景 1、使用docker启动一个nginx容器&#xff0c;报错信息如下&#xff1a; docker: Error response from…