Kotlin 语言参考文档 中文版 Help

Kotlin/JS 入门

本教程演示如何使用 Kotlin/JavaScript (Kotlin/JS) 创建一个面向浏览器的 Web 应用程序. 要创建你的应用程序, 请选择最适合你工作流程的工具:

  • IntelliJ IDEA: 从版本控制系统中克隆项目模板, 并在 IntelliJ IDEA 中使用.

  • Gradle 构建系统: 手动创建项目的构建文件, 更好地理解底层的配置工作原理.

在 IntelliJ IDEA 中创建应用程序

要创建 Kotlin/JS Web 应用程序, 可以使用 IntelliJ IDEA.

设置环境

  1. 下载并安装最新版本的 IntelliJ IDEA.

  2. 安装 Kotlin Multiplatform IDE Plugin (注意不要与 Kotlin Multiplatform Gradle Plugin 混淆).

创建项目

  1. 在 IntelliJ IDEA 中, 选择 File | New | Project from Version Control.

  2. 输入 Kotlin/JS 模板项目 的 URL:

    https://github.com/Kotlin/kmp-js-wizard
  3. 点击 Clone.

配置项目

  1. 打开 kmp-js-wizard/gradle/libs.versions.toml 文件. 它包含项目依赖项的版本目录.

  2. 确认 Kotlin 版本与 Kotlin Multiplatform Gradle Plugin 版本匹配, 创建面向 Kotlin/JS 的 Web 应用程序需要这个 Plugin:

    [versions] kotlin = "2.4.0" [plugins] kotlin-multiplatform = { id = "org.jetbrains.kotlin.multiplatform", version.ref = "kotlin" }
  3. 同步 Gradle 文件(如果你更新了 libs.versions.toml 文件). 点击构建文件中出现的 Load Gradle Changes 图标.

    Load Gradle changes 按钮

    或者, 点击 Gradle 工具窗口中的刷新按钮.

关于跨平台项目的 Gradle 配置, 详情请参见 Multiplatform Gradle DSL 参考.

构建并运行应用程序

  1. 打开 src/jsMain/kotlin/Main.kt 文件.

    • src/jsMain/kotlin/ 目录包含你的项目针对 JavaScript 目标平台的 Kotlin main 源代码文件.

    • Main.kt 文件包含代码, 它使用 kotlinx.browser API, 在浏览器页面上输出 "Hello, Kotlin/JS!".

  2. 点击 main() 函数中的 Run 图标, 运行代码.

    运行应用程序

Web 应用程序会自动在浏览器中打开. 或者, 也可以在运行完成后, 在浏览器中打开以下 URL:

http://localhost:8080/

你会看到这个 Web 应用程序:

应用程序输出

初次运行应用程序后, IntelliJ IDEA 会在顶部工具栏中, 创建对应的运行配置 (jsMain [js]):

Gradle 运行配置

启用持续构建

Gradle 可以在你每次进行修改时, 自动重新构建项目:

  1. 在运行配置列表中选择 jsMain [js], 点击 More Actions | Edit.

    Gradle 编辑运行配置
  2. Run/Debug Configurations 对话框中, 在 Run 栏内输入 jsBrowserDevelopmentRun --continuous.

    持续运行配置
  3. 点击 OK.

现在, 当你运行应用程序并进行任何修改后, Gradle 会自动对项目执行增量构建, 并在你保存(Ctrl + S/Cmd + S )或修改类文件时, 热重载浏览器.

修改应用程序

修改应用程序, 添加统计单词字母数的功能.

添加输入元素

  1. src/jsMain/kotlin/Main.kt 文件中, 通过 扩展函数 添加一个 HTML input 元素, 用来读取用户输入:

    // 替换旧代码: Element.appendMessage() 函数 fun Element.appendInput() { val input = document.createElement("input") appendChild(input) }
  2. main() 中调用 appendInput() 函数. 它会在页面上显示一个输入元素:

    fun main() { // 替换旧代码: document.body!!.appendMessage(message) document.body?.appendInput() }
  3. 再次运行应用程序.

    你的应用程序现在看起来是这样的:

    带有一个输入元素的应用程序

添加 input 事件处理

  1. appendInput() 函数内添加一个监听器, 用于读取输入值并响应变化:

    // 替换当前的 appendInput() 函数 fun Element.appendInput(onChange: (String) -> Unit = {}) { val input = document.createElement("input").apply { addEventListener("change") { event -> onChange(event.target.unsafeCast<HTMLInputElement>().value) } } appendChild(input) }
  2. 按照 IDE 的建议, 导入 HTMLInputElement 依赖项.

    导入依赖项
  3. main() 中调用 onChange 回调. 它读取并处理输入值:

    fun main() { // 替换旧代码: document.body?.appendInput() document.body?.appendInput(onChange = { println(it) }) }

添加输出元素

  1. 定义一个创建段落的 扩展函数, 添加文本元素, 用来显示输出:

    fun Element.appendTextContainer(): Element { return document.createElement("p").also(::appendChild) }
  2. main() 中调用 appendTextContainer() 函数. 它创建输出元素:

    fun main() { // 为输出创建一个文本容器 // 替换旧代码: val message = Message(topic = "Kotlin/JS", content = "Hello!") val output = document.body?.appendTextContainer() // 读取输入值 document.body?.appendInput(onChange = { println(it) }) }

处理输入, 统计字母数

处理输入, 删除空格, 并输出显示包含的字母数量.

main() 函数的 appendInput() 函数中, 添加以下代码:

fun main() { // 为输出创建一个文本容器 val output = document.body?.appendTextContainer() // 读取输入值 // 替换当前的 appendInput() 函数 document.body?.appendInput(onChange = { name -> name.replace(" ", "").let { output?.textContent = "Your name contains ${it.length} letters" } }) }

在上面的代码中:

运行应用程序

  1. 运行应用程序.

  2. 输入你的名字.

  3. 按下 Enter.

你会看到结果:

应用程序输出

处理输入, 统计唯一的字母数

作为额外的练习, 我们来处理输入, 计算并显示单词中唯一字母的数量:

  1. src/jsMain/kotlin/Main.kt 文件中, 为 String 添加 .countDistinctCharacters() 扩展函数:

    fun String.countDistinctCharacters() = lowercase().toList().distinct().count()

    在上面的代码中:

  2. main() 中调用 .countDistinctCharacters() 函数. 它统计名字中唯一字母的数量:

    fun main() { // 为输出创建一个文本容器 val output = document.body?.appendTextContainer() // 读取输入值 document.body?.appendInput(onChange = { name -> name.replace(" ", "").let { // 打印唯一字母的数量 // 替换旧代码: output?.textContent = "Your name contains ${it.length} letters" output?.textContent = "Your name contains ${it.countDistinctCharacters()} unique letters" } }) }
  3. 按照步骤 运行应用程序并输入你的名字.

你会看到结果:

应用程序输出

使用 Gradle 创建应用程序

在本节中, 你可以了解如何使用 Gradle 手动创建 Kotlin/JS 应用程序.

Gradle 是 Kotlin/JS 和 Kotlin Multiplatform 项目的默认构建系统. 它也经常在 Java, Android 和其他生态系统中使用.

创建项目文件

  1. 确认你使用的 Gradle 版本与 Kotlin Gradle Plugin(KGP)兼容. 详情请参见 兼容性表格.

  2. 使用文件浏览器, 命令行, 或你喜欢的任何工具, 为你的项目创建一个空目录.

  3. 在项目目录中, 创建一个 build.gradle.kts 文件, 内容如下:

    // build.gradle.kts plugins { kotlin("multiplatform") version "2.4.0" } repositories { mavenCentral() } kotlin { js { // 使用 browser(), 在浏览器中运行, 或使用 nodejs(), 在 Node.js 中运行 browser() binaries.executable() } }
    // build.gradle plugins { id 'org.jetbrains.kotlin.multiplatform' version '2.4.0' } repositories { mavenCentral() } kotlin { js { // 使用 browser(), 在浏览器中运行, 或使用 nodejs(), 在 Node.js 中运行 browser() binaries.executable() } }

  4. 在项目目录中, 创建一个空的 settings.gradle.kts 文件.

  5. 在项目目录中, 创建 src/jsMain/kotlin 目录.

  6. src/jsMain/kotlin 目录中, 添加一个 hello.kt 文件, 内容如下:

    fun main() { println("Hello, Kotlin/JS!") }

    按照惯例, 所有的源代码都放在 src/<target name>[Main|Test]/kotlin 目录中:

    • Main 是源代码所在位置.

    • Test 是测试所在位置.

    • <目标名称> 对应目标平台(本例中为 js).

对于 browser 环境

  1. 在项目目录中, 创建 src/jsMain/resources 目录.

  2. src/jsMain/resources 目录中, 创建一个 index.html 文件, 内容如下:

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Application title</title> </head> <body> <script src="$NAME_OF_YOUR_PROJECT_DIRECTORY.js"></script> </body> </html>
  3. <$NAME_OF_YOUR_PROJECT_DIRECTORY> 占位符替换为你的项目目录名称.

构建并运行项目

要构建项目, 请在项目根目录运行以下命令:

# 用于浏览器 gradle jsBrowserDevelopmentRun # 或者 # 用于 Node.js gradle jsNodeDevelopmentRun

如果你使用 browser 环境, 你会看到浏览器打开了 index.html 文件, 并在浏览器控制台中打印输出 "Hello, Kotlin/JS!". 你可以使用 Ctrl + Shift + J/Cmd + Option + J 命令打开控制台.

应用程序输出

如果你使用 nodejs 环境, 你会看到终端打印输出 "Hello, Kotlin/JS!".

应用程序输出

在 IDE 中打开项目

你可以在任何支持 Gradle 的 IDE 中打开你的项目.

如果你使用 IntelliJ IDEA:

  1. 选择 File | Open.

  2. 找到项目目录.

  3. 点击 Open.

IntelliJ IDEA 会自动检测它是不是 Kotlin/JS 项目. 如果在使用项目时遇到问题, IntelliJ IDEA 会在 Build 面板中显示错误信息.

下一步做什么?

2026/07/24