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生态工具组合的更多相关文章

  1. [vue]初探vue生态核心插件Vuex

    为什么会有 Vuex 这个东西 ? 一个应用内部运行的机制,事件 -> 状态 -> UI,我们的前端常常会因为这两个过程而产生大量代码,从而变得难以维护. vue的声明式渲染,解决了从 状 ...

  2. 搞一下vue生态,从vuex开始

    Vuex vuex 是专门帮助vue管理的一个js库,利用了vue.js中细粒度数据响应机制来进行高效的状态更新. vuex核心就是store,store就是个仓库,这里采用了单一的store状态树, ...

  3. Vue.js 学习笔记 第1章 初识Vue.js

    本篇目录: 1.1 Vue.js 是什么 1.2 如何使用Vue.js 本章主要介绍与Vue.js有关的一些概念与技术,并帮助你了解它们背后相关的工作原理. 通过对本章的学习,即使从未接触过Vue.j ...

  4. 太原面经分享:如何在vue面试环节,展示你晋级阿里P6+的技术功底?

    前言 一年一度紧张刺激的高考开始了,与此同时,我也没闲着,奔走在各大公司的前端面试环节,不断积累着经验,一路升级打怪. 最近两年,太原作为一个准二线城市,各大互联网公司的技术栈也在升级换代,假如你在太 ...

  5. vue cli 3

    介绍 Vue CLI 是一个基于 Vue.js 进行快速开发的完整系统 通过 @vue/cli 搭建交互式的项目脚手架. 通过 @vue/cli + @vue/cli-service-global 快 ...

  6. 前端框架本质之探究——以Vue.js为例

    问:我们在使用Vue时,实际上干了什么?   答:实际上只干了一件事——new了一个Vue对象.后面的事,都交由这个对象自动去做.就好像按了下开关,机器跑起来了,剩下的事就不用我们再操心了.   各位 ...

  7. 三十分钟学完Vue

    基础知识: vue的生命周期: beforeCreate/created. beforeMount/mounted. beforeUpdate/updated. beforeDestory/desto ...

  8. Vue 重点 必须要记住的

    基础知识: vue的生命周期: beforeCreate/created. beforeMount/mounted. beforeUpdate/updated. beforeDestory/desto ...

  9. Vue 超快速学习

    Vue 超快速学习 基础知识: 1.vue的生命周期: beforeCreate/created. beforeMount/mounted. beforeUpdate/updated. beforeD ...

  10. Vue脚手架

    https://cli.vuejs.org/zh/guide/ Vue CLI 是一个基于 Vue.js 进行快速开发的完整系统,提供: 通过 @vue/cli 搭建交互式的项目脚手架. 通过 @vu ...

随机推荐

  1. 纯css美化滚动条样式

    https://www.emperinter.info/2020/09/20/scrollbar-in-browser/ 自己完善自己博客再Ipad等移动端的菜单时选用了左右滑动的菜单模式!当然就会使 ...

  2. FFmpeg开发笔记(四十五)使用SRT Streamer开启APP直播推流

    ​SRT Streamer是一个安卓手机端的开源SRT协议直播推流框架,可用于RTMP直播和SRT直播.SRT Streamer支持的视频编码包括H264.H265等等,支持的音频编码包括AAC.OP ...

  3. 【CMake系列】08-debug release特性设置

    在构建的程序版本中,一共有 debug release minisize relwithDebugInfo四种,其中我们主要使用到就是 debug release 两种,这两种存在着一定的不同,deb ...

  4. windows编程中文件操作的几种方法,C,C++,MFC,Win32sdk

    windows编程中文件操作的几种方法 windows编程中文件操作有以下几种常见方法: 1.C语言中文件操作.2.C++语言中的文件操作.3.Win32 API函数文件操作.4.MFC CFile类 ...

  5. maven 打包 pom build

    <dependencyManagement> <dependencies> <dependency> <groupId>org.springframew ...

  6. mysql where 字符串根据英文逗号分割为数组 并判断是否包含指定字符串

    SELECT * FROM table_name where FIND_IN_SET('A',column_1) or FIND_IN_SET('B', column_2) table_name : ...

  7. DataV兼容vue3的方法

    发现问题 在使用vue开发大屏时,发现了一个很好用的可视化组件库DataV,不是阿里那个DataV哈,用vue2开发时都一切顺利,直到有一天升级项目到vue3时,发现一堆报错,后面查了下,好像是Dat ...

  8. 【YashanDB知识库】表收集统计信息默认阈值引起SQL执行效率差

    [问题分类]性能优化 [关键字]统计信息,阈值,执行计划 [问题描述]表新增87w数据自动收集统计信息任务没有启动导致SQL执行计划变差 [问题原因分析] CUS_REGISTER_READ 数据总量 ...

  9. Angular 18+ 高级教程 – Change Detection & Ivy rendering engine

    前言 不熟悉 Angular 的朋友可能不了解 Change Detection 和目前当火的 Signal 之间的关系,以至于认为现在应该要学习新潮流 Signal 而不是已经过时的 Change ...

  10. JavaScript – Sort

    前言 排序是很常见的需求. 虽然看似简单, 但其实暗藏杀机. 一不小心就会搞出 Bug 哦. 这篇就来聊聊 JS 的排序. 参考 原生JS数组sort()排序方法内部原理探究 值的比较 js中的loc ...