Vue生态工具组合
vue生态工具多种多样,我们要如何选择并组合起来才最好呢。接下来给大家推荐我认为比较好的工具组合方式,方便大家在搭建vue项目时可做一个参考。
1.Vue版本
新项目推荐优先选择vue3,虽然vue2存量项目巨多,但官方已经不再维护该版本了,况且vue3相对vue2有诸多优势,例如:
- 速度更快、性能更好
- 体积更小
- 更容易维护
- 更接近原生
- 更易使用
- 更好的TS支持
所以,新项目可以无脑选择vue3。
另外,对于存量vue2项目,如果没有太大的ROI不建议去升级到3。因为这里升级带来的价值与可能导致的风险是不匹配的,有可能做多错多。只有评估出有足够价值才需要去做这种升级。
2.构建工具
推荐使用vite,毕竟是下一代前端工具链。相比webapck,vite具备如下有点:
- 快速的开发体验:由于Vite采用了分块打包和ES6模块语法,因此在开发过程中能够实现快速的热更新和实时预览;
- 简单易用:相较于Webpack,Vite的配置文件简单明了,易于使用;
- 集成Vue:Vite和Vue是本家,在使用Vue.js开发项目时,Vite能够提供更好的支持。
因此,除非你依赖特定的 Webpack 特性,否则你可以无脑使用vite*。
3.包管理器
优先推荐 pnpm,相比 npm 和 yarn,其优势在于:
- 更快速的依赖下载
- 更高效的利用磁盘空间
- 更优秀的依赖管理
npm 因为node_modules的嵌套问题,导致多个包之间难免会有公共的依赖,这样嵌套的话,同样的依赖会复制很多次,最终会占据比较大的磁盘空间。
yarn 虽然通过铺平的方式解决了依赖重复很多次的平替,但依然存在 幽灵依赖 和 多个版本只提升一个 导致磁盘空间浪费的问题。
pnpm 通过从全局 store 硬连接到 node_modules/.pnpm,然后通过软链接来组织依赖关系,不但节省了磁盘空间,也消除了幽灵依赖问题,安装速度还快,这在 monorepo 项目中优势更加明显。
4.状态管理
推荐使用 pinia,相比 vuex,pinia 拥有如下优势:
- 完整的 TypeScript 支持:与在 Vuex 中添加 TypeScript 相比,添加 TypeScript 更容易
- 极其轻巧(体积约 1KB)
- store 的 action 被调度为常规的函数调用,而不是使用 dispatch 方法或 MapAction 辅助函数,这在 - - Vuex 中很常见
- 支持多个Store
- 支持 Vue devtools、SSR 和 webpack 代码拆分
整体而言,它拥有类型安全、 所见即所得的特性,语法上更容易理解和使用,且具备更好的性能。
5.http库
推荐Axios,它简洁、易用且高效,具备如下优势:
- 支持在浏览器中创建XMLHttpRequest请求,在node.js中创建http请求
- 能解决回调地狱问题
- 自动转化为json数据类型
- 支持Promise API,提供并发请求接口
- 可以通过网络请求检测进度
- 提供超时处理 - 浏览器兼容性良好
- 有拦截器,可以对请求和响应统一处理
是目前最主流的前端网络请求库。
6.UI库
推荐ElementUI、Vuetify或者vant。
其中,ElementUI 更侧重创建风格统一、高效且易于上手的理念。多用于后台管理系统的页面开发,业务组件也多用于数据的处理以及表格表单的展示。
Vuetify 讲究多平台适配,与Google的MaterialDesign设计风格搭配到一起,响应式设计做得更好,适配性更强。vant就是移动端组件库,轻量、可定制,性能极佳。但在国内可能不是很吃香,若是公司有对 IE 的支持需求,选它的时候要三思而后行。
vant 是一个移动端组件库,支持 TS、SSR、按需引入、国际化等等,最重要的是它还支持小程序。官方文档支持中英文,并且文档对开发者也是非常友好,有用例和展示效果。组件丰富,因为有赞团队是做商城类的,所以 Vant 支持了一些商城的特色组件,如地址栏、省市区、商品卡片、优惠券、提交订单、商品规格等等。
7.站点生成器
推荐 Vitepress,相比基于webpack的 VuePress,vitepress借助 Vue 3 和 Vite,能提供更好的开发体验、更好的生产性能、更精美的默认主题等。
另外,它们都是vue团队维护的,官方后续会重点迭代 Vitepress,所以选择 Vitepress 也是大趋势。
8.优质内容收录
推荐 Awesome Vue。它是一个收集了大量Vue框架、组件和资源的GitHub仓库,收录了很多与 Vue 相关的一切优质内容。包括面试题,课程,开源项目,UI 库,第三方包,工具集,开发者工具等,应有尽有,方便开发者快速查找使用。
推荐的vue生态工具就是这些,实际如何选择还需要考虑到业务、团队、基建因素等,这里只是给个参考。
Vue生态工具组合的更多相关文章
- [vue]初探vue生态核心插件Vuex
为什么会有 Vuex 这个东西 ? 一个应用内部运行的机制,事件 -> 状态 -> UI,我们的前端常常会因为这两个过程而产生大量代码,从而变得难以维护. vue的声明式渲染,解决了从 状 ...
- 搞一下vue生态,从vuex开始
Vuex vuex 是专门帮助vue管理的一个js库,利用了vue.js中细粒度数据响应机制来进行高效的状态更新. vuex核心就是store,store就是个仓库,这里采用了单一的store状态树, ...
- Vue.js 学习笔记 第1章 初识Vue.js
本篇目录: 1.1 Vue.js 是什么 1.2 如何使用Vue.js 本章主要介绍与Vue.js有关的一些概念与技术,并帮助你了解它们背后相关的工作原理. 通过对本章的学习,即使从未接触过Vue.j ...
- 太原面经分享:如何在vue面试环节,展示你晋级阿里P6+的技术功底?
前言 一年一度紧张刺激的高考开始了,与此同时,我也没闲着,奔走在各大公司的前端面试环节,不断积累着经验,一路升级打怪. 最近两年,太原作为一个准二线城市,各大互联网公司的技术栈也在升级换代,假如你在太 ...
- vue cli 3
介绍 Vue CLI 是一个基于 Vue.js 进行快速开发的完整系统 通过 @vue/cli 搭建交互式的项目脚手架. 通过 @vue/cli + @vue/cli-service-global 快 ...
- 前端框架本质之探究——以Vue.js为例
问:我们在使用Vue时,实际上干了什么? 答:实际上只干了一件事——new了一个Vue对象.后面的事,都交由这个对象自动去做.就好像按了下开关,机器跑起来了,剩下的事就不用我们再操心了. 各位 ...
- 三十分钟学完Vue
基础知识: vue的生命周期: beforeCreate/created. beforeMount/mounted. beforeUpdate/updated. beforeDestory/desto ...
- Vue 重点 必须要记住的
基础知识: vue的生命周期: beforeCreate/created. beforeMount/mounted. beforeUpdate/updated. beforeDestory/desto ...
- Vue 超快速学习
Vue 超快速学习 基础知识: 1.vue的生命周期: beforeCreate/created. beforeMount/mounted. beforeUpdate/updated. beforeD ...
- Vue脚手架
https://cli.vuejs.org/zh/guide/ Vue CLI 是一个基于 Vue.js 进行快速开发的完整系统,提供: 通过 @vue/cli 搭建交互式的项目脚手架. 通过 @vu ...
随机推荐
- 如何更改Python项目中的 模块搜索第一路径
内容承接上文: Python语言中当前工作目录(Current Working Directory, cwd)与模块搜索第一路径都是指什么??? 上文中已经解释了当前工作目录cwd与模块搜索路径的区别 ...
- Inno Setup 出现 the drive or unc share you selected does not exist or is not accessible 解决记录
背景 软件是使用Inno Setup的,且安装后,再次安装是默认安装到历史路径.一次用户电脑维修后,发现再次安装后报错 解决办法 取消自动安装到默认路径就好了~ UsePreviousAppDir=n ...
- springmvc配置文件中配置mybatis-plus日志输出
1.背景 2.配置方式 如果application.properties文件格式: #sql日志logging.level.com.XX.XXX.mapper=debug如果是application. ...
- UDP协议实现音频传输
目录 服务器端 客户端 服务器端 /********************************************************************************** ...
- mysql 读写分离之主从配置
#mysql主从复制 ###下载mysql安装包 ###安装master mysql . 检查当前机器是否已经安装mysql yum repolist enabled | grep "mys ...
- 10. 从0学ARM-基于Exynos4412的pwm详解
一.什么是PWM PWM,英文名Pulse Width Modulation,是脉冲宽度调制缩写,它是通过对一系列脉冲的宽度进行调制,等效出所需要的波形(包含形状以及幅值),对模拟信号电平进行数字编码 ...
- 【工程应用十一】基于PatchMatch算法的图像修复研究(inpaint)。
这个东西是个非常古老的算法了,大概是2008年的东西,参考资料也有很多,不过基本上都是重复的.最近受一个朋友的需求,前后大概用了二十多天时间去研究,也有所成果,在这里简单的予以记录. 图像修 ...
- 【YashanDB知识库】绑定参数,同一个sql多个执行计划的问题
问题现象 同一个sql有两个执行计划,是否合理? 它的EXECUTIONS,ELAPSED_TIME等统计信息怎么看,是独立分开的还是统一计算的? 如下图: 问题影响版本 tpcc测试:23.2.1. ...
- 8.18域横向smb&wmi明文或hash传递
知识点 windows 2012以上版本默认关闭wdigust,攻击者无法从内存中获取明文密码: Windows2012以下版本如安装KB287199补丁,同样也无法从内存中获取明文密码: 解决方法: ...
- c程序设计语言 by K&R(三)结构
一.类型定义 typedef typedef int Length; typedef char* String; typedef struct tnode* Treeptr; typedef int ...