6.2.2.8 Kotlin/JS 框架

原文链接: https://kotlinlang.org/docs/js-frameworks.html

6.2.2.8 Kotlin/JS 框架

利用现有的 Kotlin/JavaScript 框架来简化 Web 开发。这些框架提供开箱即用的组件、路由、状态管理以及其他用于构建现代 Web 应用的工具。

以下是一些来自社区的 Kotlin/JS Web 框架:

Kobweb

Kobweb 是一个用 Compose HTML 创建网站和 Web 应用的 Kotlin 框架。它支持实时重载,便于快速开发。受 Next.js 启发,Kobweb 提倡用标准结构来添加小部件、布局和页面。

Kobweb 开箱即用地提供页面路由、浅色/深色模式、CSS 样式、Markdown 支持、后端 API 等等。它还包含 Silk,这是一个为现代 UI 提供多种多样小部件的 UI 库。

Kobweb 还支持站点导出:生成页面快照以利于 SEO 和自动搜索索引。此外,它还支持创建基于 DOM 的 UI,能够在状态变化时高效更新。

更多信息和示例请参阅 Kobweb 文档。

关于该框架的更新和讨论,欢迎加入 Kotlin Slack 中的 #kobweb 和 #compose-web 频道。

Kilua

Kilua 是一个基于 Compose Runtime 构建的可组合 Web 框架,与 compose-html 库类似。与 compose-html 不同,Kilua 同时支持 Kotlin/Wasm 和 Kotlin/JS 目标。

Kilua 提供了模块化 API,用于创建声明式 UI 组件并管理其状态。它还包含一组面向常见 Web 应用用例的开箱即用组件。

Kilua 是 KVision 框架的继任者。Kilua 的设计对 Compose 用户(@Composable 函数、状态管理、协程/flow 集成)和 KVision 用户(允许对 UI 组件进行一定命令式交互的基于组件的 API)都很友好。

更多信息和示例请参阅 Kilua 文档。

关于该框架的更新和讨论,欢迎加入 Kotlin Slack 中的 #kilua 频道。

Summon

Summon 是一个 Kotlin Multiplatform 前端框架,用于在 JVM、Kotlin/JS 和 Kotlin/Wasm 上构建高性能应用。它支持基于组件的 UI 开发、带 HTML 流式输出的第一类服务端渲染(SSR),以及可编译为简洁 CSS 的修饰符驱动样式。

Summon 还侧重于为无障碍和高级行为提供运行时感知的组件,同时在各平台之间保持统一的代码库。

更多信息和示例请参阅 Summon 文档。

Kinetica

Kinetica 是一个 Kotlin UI 框架,专注于 Web 应用的实用效果:通过服务端渲染实现快速的首次页面交付、对 SEO 友好的 HTML 输出,以及页面加载后平滑交接到可交互的客户端 UI。它还支持无头测试,帮助团队快速可靠地测试 UI 行为,而不依赖完整的浏览器环境。

Kinetica 开箱即用地包含路由、表单和持久化模块,让团队能更快交付常见的应用功能。它的更新模型只应用最小的 DOM 补丁,有助于在状态变化时保持交互响应性;其一致的响应式模型旨在减少大型应用中的意外行为。

更多信息和示例请参阅 Kinetica 文档。

Kotlin React

React 是一个基于组件的库,广泛用于 Web 和原生用户界面。它拥有庞大的组件生态、丰富的学习资料和活跃的社区。

Kotlin React 是 React 的 Kotlin 封装,把 React 生态与 Kotlin 的类型安全和表现力结合起来。

关于该库的更新和讨论,欢迎加入 Kotlin Slack 中的 #react 和 #javascript 频道。

KVision

KVision 是一个面向对象的 Web 框架,用于构建带开箱即用 UI 组件的 Kotlin/JS 应用。这些组件可以作为应用用户界面的构建块。

使用这个框架,你可以同时用响应式和命令式编程模型来构建前端。你还可以通过 Ktor、Spring Boot 及其他框架的连接器,把它与后端应用集成。此外,你可以用 Kotlin Multiplatform 共享代码。

更多信息、教程和示例请参阅 KVision 文档。

关于该框架的更新和讨论,欢迎加入 Kotlin Slack 中的 #kvision 和 #javascript 频道。

fritz2

fritz2 是一个用于构建响应式 Web 用户界面的独立框架。它提供自己的类型安全 DSL 来构建和渲染 HTML 元素,并使用 Kotlin 的协程和 flow 来定义组件及其数据绑定。

fritz2 开箱即用地提供状态管理、校验、路由等功能,也可以与 Kotlin Multiplatform 项目集成。

更多信息、教程和示例请参阅 fritz2 文档。

关于该框架的更新和讨论,欢迎加入 Kotlin Slack 中的 #fritz2 和 #javascript 频道。

Doodle

Doodle 是一个面向 Kotlin/JS 的基于矢量的 UI 框架。Doodle 应用利用浏览器的图形能力来绘制用户界面,而不依赖 DOM、CSS 或 JavaScript。这种方式让你可以控制任意 UI 元素、矢量形状、渐变和自定义可视化的渲染。

更多信息、教程和示例请参阅 Doodle 文档。

关于该框架的更新和讨论,欢迎加入 Kotlin Slack 中的 #doodle 和 #javascript 频道。