kotlin 来写 react

作者: zidea | 来源:发表于2019-03-04 18:14 被阅读137次

最近在 Android 开发过程最先接触到 kotlin,然后就产生兴趣学习了一段时间。kotlin 不但开发服务端还可以开发 web 前端,可谓是处处开花。今天我们来体验一下 kotlin, 上网搜索一些相关资料,还真没找到。
做一个小 Demo 体验一下,根据官方文档搭建项目,运行下面命令就行。

create-react-kotlin-app my-app

先从入口文件入手,index.kt 中的 main 函数入口函数,应用就从这里开始。

fun main(args: Array<String>) {
    requireAll(require.context("src", true, js("/\\.css$/")))

    render(document.getElementById("root")) {
        app()
    }
}
  • requireAll 获取资源文件
  • render 函数确定将我们应用渲染在哪个 dom 下,启动我们的应用。

package app

import react.*
import react.dom.*
import logo.*
import ticker.*

class App : RComponent<RProps, RState>() {
    override fun RBuilder.render() {
        div("App-header") {
            logo()
            h2 {
                +"Welcome to React with Kotlin"
            }
        }
        p("App-intro") {
            +"To get started, edit "
            code { +"app/App.kt" }
            +" and save to reload."
        }
        p("App-ticker") {
            ticker()
        }
    }
}

fun RBuilder.app() = child(App::class) {}

  • RComponent 组件类
  • RProps 为属性类
  • RState 为状态类
    我们可以模仿地写一个 header 标题栏组件,其中定义为 div,然后给他一个样式类,修改他的样式属性,为 header 然后将 header 显示在界面就成功。
package header

import react.*
import react.dom.*
import kotlinext.js.*
import kotlinx.html.style

fun RBuilder.header(){
    div("header"){
        attrs.jsStyle.height = 100
        attrs.jsStyle.background = "#ffff00"
    }
}

不过资料太少,只有自己造轮子,我还是考虑用ocaml 写写看吧。

相关文章

网友评论

    本文标题:kotlin 来写 react

    本文链接:https://www.haomeiwen.com/subject/kbiiuqtx.html