element

Macro element 

Source
element!() { /* proc-macro */ }
Expand description

声明式 UI 宏,类似 JSX,支持嵌套、props、children、条件渲染、列表渲染等,极大提升终端 UI 组件开发效率。

  • 语法风格类似 React JSX,但为 Rust 语法友好设计。
  • 支持 if/else 条件渲染、#(for ...) 列表渲染、props 传递、children 嵌套。
  • 通过 $ 前缀可兼容任何实现 WidgetRef 的 ratatui 原生组件或自定义组件,便于无缝集成 ratatui 能力。
  • 适用于声明式构建终端 UI 组件树。

§element! 宏语法

例如,声明式构建一个带条件渲染和 ratatui 原生组件的 UI:

element!(Panel(title: "Demo") {
    #(if show_title { element!(Title("Hello")) }),
    #(for item in items { element!(ListItem(item)) }),
    $Block::default().borders(Borders::ALL),
})