跳转到内容

WinJS 介绍 ​


WinJS 是什么? ​

WinJS 是可扩展的前端应用框架。Fork 了 UmiJS。继承了 UmiJS 的优秀品质。同时,也参考了诸多框架和构建工具的优秀实现方案,如 Modern.js, rsbuild, Fes.js 等。

WinJS 是以路由为基础的,同时支持配置式路由和约定式路由,保证路由的功能完备,并以此进行功能扩展。然后配以生命周期完善的插件体系,覆盖从源码到构建产物的每个生命周期,支持各种功能扩展和业务需求。

WinJS 有很多非常有意思的特性,比如。

1、插件化体系,啥都能改,WinJS 本身也是由插件构成
2、多 bundler,同时支持 Vite、Webpack、Rsbuild 打包方案,并可外置接入基于 Rsbuild 2.x 的 Rsbuild2 模式
3、基于 Vue Router 的完备路由
4、Vue3 的框架级接入
5、Monorepo 最佳实践
6、import all from winjs
7、auto import 的研发模式
...

什么时候不用 WinJS? ​

如果你的项目,

1、需要支持 IE 11 或更低版本的浏览器
2、需要跑在 Node 14 以下的环境中
3、有很强的 webpack 自定义需求和主观意愿
4、需要选择不同的路由方案
...

WinJS 可能不适合你。

为什么不是? ​

Vue CLI ​

Vue CLI 是基于 Vue.js 进行快速开发的完整系统,提供交互式脚手架、丰富的官方插件,并且可通过插件进行扩展,他在打包层把体验做到了极致,但是不包含路由,不是框架。和 WinJS、Umi、Nuxt.js、Modern.js 等元框架不是同一类型。脚手架可以让我们快速启动项目,对于单一的项目够用,但对于团队而言却不够。因为使用脚手架像泼出去的水,一旦启动,无法迭代。同时脚手架所能做的封装和抽象都非常有限。

UmiJS ​

WinJS 本质就是 Fork 它的。UMI 是基于 React 封装的应用级框架,贯彻着函数式编程的思维。而 Vue 有所不同,虽然 Vue 3.0 向函数式迈了一大步,但大家可能依然喜欢编写 .vue文件,而非 .j[t]sx 文件。两种思维方式会导致部分 API 设计上有所差异,虽然 UMI 有 preset-vue ,但依旧不太 "Vue"。

基于 MIT 许可发布