前端技术选型与探索

花了几天研究了一下各种前端框架和库,最后做了折中的选型。

选型原则

  • 尽量用静态类型检查,减少开发时的typo之类问题,也方便IDE检查
  • 可以方便添加和定制组件,可以做细调
  • 有丰富的模板和组件免费资源
  • 细节比较透明,方便调试和扩展

考察框架和库

  • 首先在react, vue和angular之间做选择,angular了解不多,这次详细看了一下,做为个人项目来说不太适合,团队协作上感觉不错,入门的话可以先排除了。react和vue各有所长,所以其实就由UI组件库来决定了
  • 已经有很多开源的UI组件库,基于react/vue,这次考察 antd, arco.design, shadcn-ui。antd, arco.design 都是自成一体的全套UI,好处是组件很多,坏处是如果自己要做小调整其实很不容易,另外css系统也是自成一套,所以引入外部的css还是有困难的。最后选择shadcn-ui,就是看重组件代码很透明,css是直接使用tailwindcss,所以有大量资源可用,也有 theme可以调,所以接下来 react就是必选了,因为 shadcn-ui是基于 react。
    • shadcn-ui 其实是把组件的源码复制到项目里,所以非常透明,要调什么可以马上动手
  • css也定型了,就是用 tailwindcss,这个看似复杂麻烦的css系统越来越受欢迎,特别是免费资源非常多,很容易获得,几个简单的源码一组合就可以做自己的UI。而且非常透明,要小调整也很容易
  • react 最佳平台目前是 next.js ,不过这次也考察了其他的: remix, gatsby,这两个各有所长,但整体上不如 next.js 顺手,next.js 覆盖了前端后端,各种扩展能力也不错,plugin 方面确实比 gatsby差了点,但社区和网上的支持也是非常多,也有 vercel 作为免费平台,所以仍然选定 next.js
  • 国际化这部分花了很长时间来选型,next.js 其实已经内置了一种国际化路由,但这个其实是基于 server 端的,如果纯打包 client 端要另外找,最后还是找了 next-i18next 的文档,按照里面的做法手搓了一个国际化支持,写下来其实不复杂,基于 react-i18next,自己简单地包装了一下
  • 网络请求考察了 fetch 和 axios,fetch是原生的,axios使用上更简便,社区和文档也丰富一点,所以还是选择axios。自己做个简单的包装,也方便替换。

最后选型

  • 基础框架:react && next.js
  • UI组件库:shadcn-ui
  • CSS: tailwindcss
  • 国际化:react-i18next 复制手搓
  • 网络请求:axios

样例:Hello UI

项目概览 - hello-ui - GitCode

相关推荐
小北方城市网2 分钟前
JavaScript 实战 —— 实现一个简易的 TodoList(适合前端入门 / 进阶)
开发语言·前端·javascript
是上好佳佳佳呀2 分钟前
【前端(二)】CSS 知识梳理:从编写位置到选择器优先级
前端·css
倾颜28 分钟前
我是怎么把单 Tool Calling 升级成多 Tool Runtime 的
前端·后端·langchain
清汤饺子34 分钟前
Superpowers:给 AI 编程 Agent 装上"工程化超能力"
前端·javascript·后端
踩着两条虫36 分钟前
AI驱动的Vue3应用开发平台 深入探究(十三):物料系统之区块与页面模板
前端·vue.js·人工智能·架构·系统架构
weixin199701080161 小时前
《得物商品详情页前端性能优化实战》
前端·性能优化
帮我吧智能服务平台1 小时前
装备制造企业售后服务数字化:从成本中心到利润中心背景
java·前端·制造
qq_368019661 小时前
用 react 的react-syntax-highlighter 实现语法高亮、行号与多行错误行高亮
前端·react.js·前端框架
lbh1 小时前
从LLM到Agent的核心概念
前端·openai·ai编程
-Da-1 小时前
【操作系统学习日记】并发编程中的竞态条件与同步机制:互斥锁与信号量
java·服务器·javascript·数据库·系统架构