今日覚えること
Element msg
からHtml msg
に変換する方法
layout : List (Attribute msg) -> Element msg -> Html msg
import Element exposing (..)
main = layout [] <| column [] [ text "Hello, elm-ui" ]
はじめに
elm-uiは新時代のすーぱーUIレイアウトライブラリなんですが初めてElmやっていきなりelm-uiやろうっていっても全然わかんないですよね
なので今日は0からはじめようと思います
Element msg
って?
Html msg
型は触ったことありますよね?
elm-uiではHtml msg
の代わりにElement msg
という独自の型が使われます
Element msg
はHTMLに逐語訳のように単純に変換されるわけではなく、styleタグが生えたり、うまくレイアウトされるようにdivを何個も重ねられたりします
HTMLとCSSをうまく抽象化(?)できてるところがelm-uiのいいところです
Browser.element
などが受け入れるのはHtml msg
だけなので必然変換しなければなりません
layout
で変換する
import Element exposing (..)
view : Model -> Html msg
view model =
layout [] <| column [] [ text model.message ]
layout
関数を使えば変換できます。特に解説することはありませんが型でも眺めてふんふんしましょう
layout : List (Attribute msg) -> Element msg -> Html msg
発展layoutWith
実はもう一つ変換する関数があります
packageサイトで-> Html
とページ内検索してみましょう。(Html型に変換する関数なので当然型には-> Html
が含まれるはずです)
layoutWith :
{ options : List Option }
-> List (Attribute msg)
-> Element msg
-> Html msg
こっちはちょっと難しいですね。でも別に使わなくてもいいので特に解説なんてしないです。なんかオプションがつけられるんだなってことだけ覚えて帰ってください
おわりに
layout
で変換できますからね。やってみましょう