icejs 是什么
一个基于 React.js 的通用框架。
随着 React 生态的快速发展,基于 React 的方案数不胜数,在 v16.8 版本发布 Hooks 这一重大改进之后,社区基于 Hooks 的状态管理也是层出不穷,这意味着很多方案开发者依然要做很多选择,没有约定的团队,沟通成本和跨团队协作成本,以及长期的维护是非常高的,这时候统一一套开发模式就显得尤为重要。
而 icejs 正是在这种背景下诞生的,通过框架提供完整的标准化的 React 应用开发模式和最佳实践。目的是简化应用的开发,以及收敛技术栈、屏蔽底层差异和统一开发体验,帮助开发团队和开发人员降低开发和维护成本。
在实现上 icejs 是基于 build-scripts 的,配置等能力与其保持一致,同时兼容所有插件。
设计原则
在框架设计上,icejs 借鉴参考了著名后端框架 Rails 的设计理念:
- 不要自我重复: DRY 是软件开发中的一个原则,意思是“系统中的每个功能都要具有单一、准确、可信的实现”。不重复表述同一件事,写出的代码才更易维护、更具扩展性,也更不容易出问题。
- 约定优于配置: icejs 为 Web 应用的大多数需求都提供了最好的解决方法,并且默认使用这些约定,而不是在长长的配置文件中设置每个细节。
特性
- 🐒 工程:开箱即用的工程配置,支持 ES6+、TypeScript、样式方案(Less/Sass/CSS Modules)等
- 🦊 路由:默认使用配置式路由,同时支持约定式路由
- 🐯 数据流:内置集成 icestore,基于 React Hooks 的轻量级状态管理方案
- 🐶 日志:内置集成 logger,类似
console.log
的统一日志方案 - 🐱 工具函数:内置集成 helper,提供常用的工具函数
- 🦁 应用配置:内置集成 config,支持多环境配置
- 🐴 Hooks:提供应用级别 useApp 和页面级别 usePage 等 Hooks API
- 🐌 插件体系:提供插件机制,可以扩展框架的核心功能
- 🐘 typescript:默认使用 typescript
- 🐂Modern:支持 SPA、SSR、MPA、微前端等流行的应用类型