6.2.2.1 Kotlin/JavaScript

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

6.2.2.1 Kotlin/JavaScript

Kotlin/JavaScript (Kotlin/JS) 让你把 Kotlin 代码、Kotlin 标准库以及任何兼容的依赖转译为 JavaScript。这样,你的 Kotlin 应用就能在任何支持 JavaScript 的环境中运行。

通过 Kotlin Multiplatform Gradle 插件(kotlin.multiplatform)使用 Kotlin/JS,可以在一个地方配置和管理面向 JavaScript 的 Kotlin 项目。

Kotlin Multiplatform Gradle 插件让你可以使用诸如控制应用打包、直接从 npm 添加 JavaScript 依赖等功能。要了解可用的配置选项概览,请参阅搭建 Kotlin/JS 项目。

提示: Kotlin/JS 的当前实现面向 ES5 和 ES2015 标准。

Kotlin/JS 的用例

下面是使用 Kotlin/JS 的一些常见方式:

  • 在前端与 JVM 后端之间共享通用逻辑

如果你的后端是用 Kotlin 或其他兼容 JVM 的语言编写的,就可以在 Web 应用与后端之间共享通用代码,包括数据传输对象 (DTO)、校验与认证规则、REST API 端点的抽象等等。

  • 在 Android、iOS 与 Web 客户端之间共享通用逻辑

你可以在 Web 界面与 Android、iOS 移动应用之间共享业务逻辑,同时保留原生用户界面。这样可以避免重复实现通用功能,例如 REST API 抽象、用户认证、表单校验和领域模型。

  • 使用 Kotlin/JS 构建前端 Web 应用

用 Kotlin 开发传统的 Web 前端,同时与现有工具和库集成:

  • 如果你熟悉 Android 开发,可以用基于 Compose 的框架(例如 Kobweb 或 Kilua)构建 Web 应用。
  • 使用 JetBrains 提供的 常见 JavaScript 库的 Kotlin 封装,用 Kotlin/JS 构建完全类型安全的 React 应用。这些 Kotlin 封装(kotlin-wrappers)为 React 及其他 JavaScript 框架提供抽象和集成。

这些封装还支持配套库,例如 React Redux、React Router 和 styled-components。你也可以通过与 JavaScript 生态的互操作来使用第三方 React 组件和组件库。

  • 使用 Kotlin/JS 框架,它们与 Kotlin 生态集成,并支持简洁而富有表现力的代码。

  • 构建支持较旧浏览器的多平台应用

使用 Compose Multiplatform,你可以用 Kotlin 构建应用,并在 Web 项目中复用移动端和桌面端的用户界面。Kotlin/Wasm 是这一用途的主要目标,但你也可以同时面向 Kotlin/JS,以扩展到更旧的浏览器。

  • 使用 Kotlin/JS 构建服务端与无服务器应用

Kotlin/JS 中的 Node.js 目标让你可以在 JavaScript 运行时上创建服务端或无服务器环境的应用。这种方式启动快、内存占用低。kotlinx-nodejs 库提供了从 Kotlin 类型安全地访问 Node.js API 的能力。

根据你的用例,Kotlin/JS 项目可以使用 Kotlin 生态中兼容的库,以及来自 JavaScript 和 TypeScript 生态的第三方库。

要在 Kotlin 代码中使用第三方库,你可以编写自己的类型安全封装,或使用社区维护的封装。此外,你还可以使用 Kotlin/JS 的动态类型,它让你跳过严格类型和库封装,代价是失去类型安全。

Kotlin/JS 还兼容最常见的模块系统:ESM、CommonJS、UMD 和 AMD。这让你可以产出和消费模块,并以结构化的方式与 JavaScript 生态集成。

分享你的用例

Kotlin/JS 的用例这个列表并不详尽。欢迎你尝试不同的方式,找到最适合自己项目的做法。

欢迎在 Kotlin Slack 的 #javascript 频道中,与 Kotlin/JS 社区分享你的用例、经验和问题。

Kotlin/JS 入门

探索开始使用 Kotlin/JS 的基础知识和初始步骤:

  • 如果你刚接触 Kotlin,请先复习基本语法并浏览 Kotlin 之旅。
  • 查看 Kotlin/JS 示例项目列表以获取灵感。这些示例包含有用的代码片段和模式,可以帮助你启动自己的项目。
  • 如果你刚接触 Kotlin/JS,请先从搭建指南开始,然后再探索更高级的话题。

想亲自试试 Kotlin/JS 吗?

Kotlin/JS 入门

Kotlin/JS 示例项目

下表列出了一组示例项目,展示了各种 Kotlin/JS 用例、架构和代码共享策略:

| 项目 | 说明 |

| Spring 与 Angular 之间共享通用代码的 Petclinic | 演示如何通过共享数据传输对象、校验与认证规则以及 REST API 端点抽象,来避免企业应用中的代码重复。代码在 Spring Boot 后端与 Angular 前端之间共享。 | | 全栈会议 CMS | 展示多种代码共享方式,从最简单的方式到在 Ktor、Jetpack Compose 和 Vue.js 应用之间全面共享代码。 | | 基于 Compose-HTML 的 Kobweb 框架上的待办应用 | 展示如何复用 Android 开发者熟悉的方式来创建待办清单应用,构建一个由 Kobweb 框架驱动的客户端 UI 应用。 | | Android、iOS 与 Web 之间的简单逻辑共享 | 包含一个项目的模板,其通用逻辑用 Kotlin 编写,并在 Android(Jetpack Compose)、iOS(SwiftUI)和 Web(React)的原生 UI 应用中使用。 | | 全栈协作待办清单 | 展示如何使用带 JS 和 JVM 目标的 Kotlin Multiplatform 创建用于协作的待办清单应用。后端使用 Ktor,前端使用 Kotlin/JS 配合 React。 |

Kotlin/JS 框架

Kotlin/JS 框架通过提供开箱即用的组件、路由、状态管理以及其他构建现代 Web 应用的工具,简化了 Web 开发。

查看不同作者编写的可用 Kotlin/JS 框架。

加入 Kotlin/JS 社区

你可以加入官方 Kotlin Slack 中的 #javascript 频道,与社区和 Kotlin/JS 团队交流。

接下来学什么