Banner

jaspr

Dart 的实验性 Web 框架。支持 SPA 和 SSR。

核心特性

  • 类似于Flutter的Widget的熟悉组件模型
  • 易于服务器端渲染
  • 客户端组件数据的自动水合
  • 快速增量DOM更新
  • 经过充分测试(约70%的测试覆盖率)

我正在寻找贡献者。如果您想以任何方式提供帮助,请随时与我联系。

JasprPad Screenshot

关于

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并添加网站
  • ? 用缺失的概念(动画等)扩展框架

GitHub

查看 Github