Skip to content

Kotlin/JavaScript

Kotlin/JavaScript (Kotlin/JS) 讓您可以將 Kotlin 程式碼、Kotlin 標準函式庫以及任何相容的相依性轉譯為 JavaScript。透過這種方式,您的 Kotlin 應用程式可以在任何支援 JavaScript 的環境中執行。

透過 Kotlin Multiplatform Gradle 外掛程式 (kotlin.multiplatform) 使用 Kotlin/JS,在單一位置配置並管理針對 JavaScript 的 Kotlin 專案。

Kotlin Multiplatform Gradle 外掛程式讓您可以存取各種功能,例如控制應用程式的打包 (bundling) 以及直接從 npm 新增 JavaScript 相依性。若要查看可用配置選項的概覽,請參閱設定 Kotlin/JS 專案

目前 Kotlin/JS 的實作針對 ES5ES2015 標準。

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 的架構來建構 Web 應用程式,例如 KobwebKilua

    • 使用 JetBrains 提供的 JavaScript 常用程式庫的 Kotlin 包裝函式,透過 Kotlin/JS 建構完全型別安全的 React 應用程式。Kotlin 包裝函式 (kotlin-wrappers) 為 React 與其他 JavaScript 架構提供了抽象與整合。

      這些包裝函式還支援補充性程式庫,例如 React ReduxReact Routerstyled-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 的 動態型別 (dynamic type),這讓您可以跳過嚴格的型別檢查與程式庫包裝函式,但代價是犧牲型別安全性。

Kotlin/JS 也與最常見的模組系統相容:ESMCommonJSUMDAMD。這讓您可以產生與取用模組,並以結構化的方式與 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)展示多種程式碼共享方式,從最簡單的共享到 KtorJetpack ComposeVue.js 應用程式之間的全面程式碼共享。
基於 Compose-HTML 的 Kobweb 架構待辦事項 App展示如何透過重複使用 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 團隊聊天。

下一步