Introduction
html!
マクロによって HTML と SVG のコードを宣言的に書くことができます。
JSX (HTML のようなコードを JavaScript 内部に書くことができる JavaScript の拡張) に似ています。
重要な注意
html!
マクロはルートの HTML ノードのみ受け付けます (フラグメントかイテレータを使うことでやり取りできます)- 空の
html! {}
の呼び出しは可能ですが何もレンダリングしません - リテラルはクオーテーションがつけられ、ブレースで囲う必要があります:
html! { "Hello, World" }
note
html!
マクロはコンパイラのデフォルトの再帰の上限に簡単に達してしまいます。
もしコンパイラエラーに遭遇した場合はその値を押し出すといいかもしれません。
クレートのルート(つまり、lib.rs
かmain.rs
)で#![recursion_limit="1024"]
のような属性を使えば解決します。
詳しくは公式ドキュメントとStack Overflow の質問を見てみてください。