jaspr
Dart 的实验性 Web 框架。支持 SPA 和 SSR。
核心特性
- 类似于Flutter的Widget的熟悉组件模型
- 易于服务器端渲染
- 客户端组件数据的自动水合
- 快速增量DOM更新
- 经过充分测试(约70%的测试覆盖率)
我正在寻找贡献者。如果您想以任何方式提供帮助,请随时与我联系。
关于
Jaspr的创建初衷是打造一个看起来和感觉都像Flutter的Web框架,但又能像Vue或React那样渲染普通的html/css。它主要面向希望构建网站但因各种原因不想使用Flutter Web的Flutter开发者。由于它使用Dart,与JS相比,它在类型安全和空安全方面也非常强大。
与Flutter的差异和设计原则
您可能知道Flutter通过手动将像素绘制到画布上来渲染Widgets。然而,使用HTML和CSS渲染网页与Flutter的绘制方法在根本上是不同的。此外,Flutter有各种各样具有不同目的和样式的Widgets,而在HTML中,您可以以任何您喜欢的方式独特地设置每个HTML元素的样式。
jaspr并没有试图镜像Flutter的每一个细微之处,而是通过在有意义的地方匹配特性,同时又不损害Web平台的独特属性,来提供一种通用的Flutter风格。更确切地说,它拥抱这些差异,以提供两全其美。
目录
- /experiments:实验性的应用程序或功能,(可能)尚未包含在核心框架中。
- /minimal_app:一个最小化的示例,包含客户端和服务器的单个入口点。
- /preload_images:一个自动预加载下一路由图像的组件。
- /riverpod:Jaspr的Riverpod示例。
- /scoped_styles:引入了作用域样式的组件。
- /server_handling:一个在服务器上使用自定义中间件来托管API的应用程序。
- /packages:
- /jaspr:主框架包。
- /jaspr_builder:用于将js库与jaspr集成的Polyfill构建器。
- /jaspr_pad:受DartPad启发的jaspr应用程序在线游乐场。
- /jaspr_riverpod:Jaspr的Riverpod实现。
- /jaspr_router:Jaspr的路由器实现。
- /jaspr_test:Jaspr的测试包。
路线图
- ✅ 实现核心框架
- ✅ 编写测试包和框架测试
- ✅ 添加riverpod集成包
- ✅ 添加jasprpad作为带示例的在线游乐场
- ✅ 为jasprpad添加教程
- ✅ 添加Wiki和文档
- ? 将测试覆盖率提高到80%以上
- ? 添加基准测试
- ? 改进路由器包
- ? 添加SSG支持
- ? 添加CSS预处理和作用域样式
- ? 改进jasprpad上的教程
- ? 改进Wiki并添加网站
- ? 用缺失的概念(动画等)扩展框架

