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. Ubuntu22.04下安装chrome浏览器

    Ubuntu下Chrome的下载: 地址: https://www.google.cn/intl/zh-CN/chrome/ 下载后的文件: 安装: 命令: sudo dpkg -i google-c ...

  2. idea中多线程debug实现方案

    1.背景 2.步骤 步骤一: 步骤二: 步骤三: 启动测试,查看个线程状态 完美

  3. Apache DolphinScheduler如何开启开机自启动功能?

    转载自东华果汁哥 Apache DolphinScheduler 是一个分布式.去中心化的大数据工作流调度系统,支持大数据任务调度.若要设置 DolphinScheduler 开机自启动,通常需要将其 ...

  4. 100ASK_IMX6ULL arm板子如何移植刷卡器

    最近为了在arm板子上移植刷卡器,比较简单,但也遇到了坑,现在和大家分享下. 购买刷卡器 某宝很多,应该选哪一种呢? 一口君一共买了4种刷卡器,有2种可以用,还有2种不能用. 下图为最方便的一款,一口 ...

  5. .NET8 Blazor 从入门到精通:(三)类库和表单

    目录 Razor 类库 创建 使用 使可路由组件可从 RCL 获取 静态资源 表单 EditForm 标准输入组件 验证 HTML 表单 Razor 类库 这里只对 RCL 创建和使用的做一些简单的概 ...

  6. 使用 prerenderRoutes 进行预渲染路由

    title: 使用 prerenderRoutes 进行预渲染路由 date: 2024/8/20 updated: 2024/8/20 author: cmdragon excerpt: prere ...

  7. 初三年后集训测试T3---树上的宝藏

    初三年后集训测试 $T 3 $ 树上的宝藏 $$HZOI$$ ·题意 · \(Description\) 蒜头君有一棵 \(n\) 个节点的树(即 \(n\) 个节点, \(n−1\) 条边的无向连通 ...

  8. redux-persist状态持久化6.0.0版本

    网上挺少关于redux-persist的教程,个人去github看了下,看的一脸懵逼,然后百度查了查,发现redux-persist每一个版本的语法改的都挺大的,造成我下载的6版本在网上之中到一个教程 ...

  9. 偶发的系统卡顿内存飙升导致OOM

    线上有个小程序,客户反馈的现象是偶发性的卡主没响应,前端失去连接,点其他菜单都没响应.通过查看配置的dump目录有很多的GC日志,以及生成的一个堆内存快照. JVM的配置参数大概为: -Xms512M ...

  10. FFmpeg开发笔记(五十)聊聊几种流媒体传输技术的前世今生

    ​自从互联网普及之后,用于视频直播的流媒体技术就发展起来.这几十年中,比较有影响的主要有MMS.RTSP.RTMP.HLS.SRT.RIST几种,分别介绍如下. 1.MMS协议 MMS全称Micros ...