SuperAPI AI 工具集

kotlin-web

前端与建站

查看项目

更新于 10-15 17:32

技能介绍

用途:为在 Kotlin 中构建浏览器前端提供三种技术路线的选型依据、搭建方式与限制说明:Compose for Web(WASM)、Kotlin/JS + React、Kotlin/JS + Vue。

主要能力与选型:给出决策树与对比矩阵(成熟度、代码共享程度、包体积约 2-5MB 对 200-500KB、npm 生态、SEO/SSR、可访问性、学习曲线、长期维护性)。Compose WASM 适合快速 MVP、内部工具与后台面板;需要 SSR/SEO、完整 a11y 与丰富 npm 生态的生产站点,宜用 Kotlin/JS + React 或 Vue。

使用方式:Compose WASM 使用 wasmJs("web") { browser() } 与 CanvasBasedWindow 挂载 Skiko canvas,要求 canvas 元素 id 与代码中 ComposeTarget 一致,否则白屏无报错;Kotlin/JS 使用 js(IR) { browser() },通过 kotlin-wrappers BOM 引入 React/Vue 绑定,以 @JsModule/@JsNonModule 与 external 声明接入 npm 模块,并用状态桥接把 Kotlin Flow 映射为框架可观察状态。共享代码方面,领域模型、仓库接口、用例与网络配置可放入 commonMain;UI 组件仅在 Compose WASM 下可直接复用。

运行命令保持原样: ./gradlew :composeApp:wasmJsBrowserDevelopmentRun ./gradlew :composeApp:wasmJsBrowserDistribution ./gradlew :webApp:jsBrowserDevelopmentRun ./gradlew :webApp:jsBrowserDistribution

限制:Compose WASM 基于 canvas,无原生 DOM 与元素检查器,缺少屏幕阅读器支持与 DOM 级可访问性,包体积大,移动网络体验受影响,API 仍在变化;WASM 目标无 Room、无 Dispatchers.IO(改用 Dispatchers.Default)、无文件系统,请求受 CORS 约束。React/Vue 方案无法复用 Compose UI,需要重写界面。资料未提供收费与价格信息。