带 html 的 HTML!
您可以使用 html!
宏编写类似于 HTML 的表达式。在幕后,Yew 将其转换为表示要生成的 DOM 的 rust 代码。
use yew::prelude::*;
let my_header: Html = html! {
<img src="img_girl.jpg" alt="Girl in a jacket" width="500" height="600" />
};
类似于格式表达式,有一种简单的方法可以通过应用大括号将周围上下文中的值嵌入到 HTML 中
use yew::prelude::*;
let header_text = "Hello world".to_string();
let header_html: Html = html! {
<h1>{header_text}</h1>
};
let count: usize = 5;
let counter_html: Html = html! {
<p>{"My age is: "}{count}</p>
};
let combined_html: Html = html! {
<div>{header_html}{counter_html}</div>
};
使用 html!
有一个主要规则 - 你只能返回 1 个包装节点。为了渲染多个元素的列表,html!
允许片段。片段是没有名称的标签,它们本身不生成 HTML 元素。
- 无效
- 有效
use yew::html;
// error: only one root HTML element allowed
html! {
<div></div>
<p></p>
};
use yew::html;
// fixed: using HTML fragments
html! {
<>
<div></div>
<p></p>
</>
};
我们将在 更多 HTML 中更深入地介绍 Yew 和 HTML。