generated at
Halogen HTML
HTML要素を表す関数群
e.g. HH.button , HH.div
Halogen Componentとは別物
Halogen HTMLは状態などは持てない




2つの引数
attr, props, event handler
children

属性がないときはアンダーバー付きの関数を使えば省略できる
以下2つは同じ.purs
div_ [ children ] div [] [ children ]



ちょっと気をつけるところ
purs(hs)
import Halogen.HTML as HH import Halogen.HTML.Properties as HP element :: forall w i. HH.HTML w i element = HH.div [ HP.id "root" ] [ HH.input [ HP.placeholder "Name" ] , HH.button [ HP.classes [ HH.ClassName "btn-primary" ] , HP.type_ HP.ButtonSubmit ] [ HH.text "Submit" ] ]
htmlの class HP.classes []
HH.ClassName というnewtypeを使う
ClassName HH にあるのは何でだろう #??
HP にあっても良い気がするんだけどmrsekut
buttonのtypeもnewtypeを使う
何も考えてないと HP.type "submit" と書いちゃうmrsekut
HH.input はchildrenを取らない1引数関数
第2引数書くとコンパイルエラーになる


DOM内のeventに応答しないHTMLの場合に使う
HH.HTML w i と書かずに、より制限の強い PlainHTML を使う
ただし、 fromPlainHTML で変換しないといけない場合が出てくる
使っているのを見たことがないmrsekut
IProp
HP. 系のproperty関数を誤ったHTML要素に指定できないように働く


独自のカスタム要素を作るときのComponentとの関係が少し分かりづらい
状態を持たなければ、HTMLで作るのか?
Componentで作っても同様のことはできる
letとconstの使い分けの明示みたいな感じになるのか?


参考
公式docs