web/laminar

Observer 를 사용해 side effect 처리하기

wefree 2022. 1. 9. 22:48

코드

import com.raquo.laminar.api.L._
import org.scalajs.dom
import org.scalajs.dom.MouseEvent

object Main {
  def main(args: Array[String]): Unit = {
    val observer   = Observer[MouseEvent](_ => println("button clicked"))
    val testButton = button("test", onClick --> observer)
    
    // 혹은 아래처럼 한줄로 표현하는 것도 가능하다.
    // val testButton = button("test", onClick --> {_ => println("button clicked")})
    val content = div(
      testButton
    )

    val containerNode = dom.document.getElementById("main_content")
    render(containerNode, content)
  }
}