用途:构建可复用、可组合的 Textual 组件,遵循函数式原则、生命周期管理与类型安全。组件是 Textual 应用的基本构建块。
主要能力:选择组件基类(Static 用于展示内容,Container 用于组合子组件,优先使用内置组件);实现 init 配置与类型提示;通过 compose() 组合子组件;用 render() 渲染 Rich 对象;实现 on_mount/on_unmount 等生命周期钩子;通过自定义 Message 与 @on 装饰器实现交互;用 DEFAULT_CSS 定义样式。
使用方式:继承 Static 或 Container,定义 DEFAULT_CSS,在 init 中调用 super().init(name=name, id=id, classes=classes) 并保存配置;组合型组件重写 compose() 并 yield 子组件,在 on_mount() 中用 self.query_one() 查询子组件;展示型组件重写 render() 返回 str、Text 或 Table;交互通过 self.post_message() 发送自定义消息,父组件用 @on(MessageType) 处理。
适用场景:需要可复用终端 UI 组件、复杂容器布局、动态挂载/卸载、懒加载、响应式 watcher、自定义消息冒泡与性能优化时。
限制:要求 Textual >= 0.45.0、Python 3.9+,Rich 随 Textual 安装。资料未提供具体收费、价格、平台或效果信息。