Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up

Scalafui is an experimental implementation of the Elm Architecture in Scala.js

NotificationsYou must be signed in to change notification settings

marubinotto/scalafui

Repository files navigation

Scalafui is an experimental implementation of the Elm Architecture in Scala.js.

Minimal Application Code

The following code is an example of a minimal application implementation using Scalafui. The framework is a single Scala file (FunctionalUI.scala) that contains the necessary constructs to implement web frontend applications following the Elm Architecture.

...importscalafui.FunctionalUI._objectMain {//// MODEL//caseclassModel(messages:Seq[String]=Seq.empty,input:String="")definit(url:URL): (Model,Seq[Cmd[Msg]])= (Model(),Seq.empty)//// UPDATE//sealedtraitMsgcaseclassInput(input:String)extendsMsgcaseobjectSendextendsMsgdefupdate(msg:Msg,model:Model): (Model,Seq[Cmd[Msg]])=    msgmatch {caseInput(input)=>        (model.copy(input= input),Seq.empty)caseSend=>        (          model.copy(messages= model.messages:+ model.input, input=""),Seq.empty        )    }//// VIEW//defview(model:Model,dispatch:Msg=>Unit):ReactElement=    div(      h1("Welcome to Functional UI!"),      div(className:="message-input")(        input(          value:= model.input,          onInput:= (e=> dispatch(Input(e.target.value)))        ),        button(onClick:= (e=> dispatch(Send)))("Send")      ),      div(className:="messages")(        model.messages.map(div(className:="message")(_))      )    )defmain(args:Array[String]):Unit= {if (LinkingInfo.developmentMode) {      hot.initialize()    }Browser.runProgram(      dom.document.getElementById("app"),Program(init, view, update)    )  }}

Running Examples

Hello World

In development mode, use two terminals in parallel:

$yarn$yarn run dev
sbt> ~fastLinkJS

ToDo

$cd examples/todo$yarn$yarn run dev
sbt> ~exampleTodo/fastLinkJS

Multipage

$cd examples/multipage$yarn$yarn run dev
sbt> ~exampleMultipage/fastLinkJS

Stopwatch

$cd examples/stopwatch$yarn$yarn run dev
sbt> ~exampleStopwatch/fastLinkJS

About

Scalafui is an experimental implementation of the Elm Architecture in Scala.js

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

[8]ページ先頭

©2009-2025 Movatter.jp