直接跳到内容

ReactiveExpr 响应式表达式

PnReactiveExpr 组件可以渲染 Param rx 对象,它代表一个响应式表达式,同时显示表达式中包含的小部件和表达式的最终输出。小部件相对于输出的位置可以设置,也可以完全移除小部件。

请注意,当导入 panel_vuepy as vpanel 时,可以使用 vpanel.rx 代替 param.rx

有关使用 rx 的详细信息,请参阅 param.rx 文档

底层实现为panel.pane.ReactiveExpr,参数基本一致,参考文档:https://panel.holoviz.org/reference/panes/ReactiveExpr.html

建议用vuepycomputed 来代替该功能。

基本用法

param.rx API 是构建声明式和响应式 UI 的强大工具。

让我们看几个例子:

在底层,Panel 确保上面的响应式表达式被渲染在 PnReactiveExpr 组件中。您也可以显式地这样做:

响应式表达式从不是"死胡同"。您始终可以更新和更改响应式表达式

您还可以组合响应式表达式

布局选项

您可以更改 widget_location

您可以将 widget_layout 更改为 Row

您可以水平 center 输出:

通过设置 show_widgets=False 可以隐藏小部件:

响应式表达式作为引用

在笔记本中显式或隐式地使用 PnReactiveExpr 组件非常适合探索。但这并不是很高效,因为每当响应式表达式重新渲染时,Panel 都必须创建一个新的组件来渲染您的输出。

相反,您可以并且应该将响应式表达式作为引用传递给特定的 Panel 组件。Panel 组件可以动态解析表达式的值:

引用方法通常应该是首选,因为它更具声明性和明确性,允许 Panel 有效地更新现有视图,而不是完全重新渲染输出。

样式化 DataFrame 示例

让我们通过一个稍微复杂一点的例子来展示,构建一个表达式来动态加载一些数据并从中采样 N 行:

现在我们有了一个符合我们需求的表达式,可以将其用作引用来响应式地更新 Tabulator 小部件的 value

API

属性

属性名说明类型默认值
object一个 param.reactive 表达式param.reactive None
center是否水平居中输出bool False
show_widgets是否显示小部件bool True
widget_layout用于显示小部件的布局对象。例如 pn.WidgetBox(默认),pn.Columnpn.RowListPanel WidgetBox
widget_location小部件相对于响应式表达式输出的位置。可选值包括 'left', 'right', 'top', 'bottom', 'top_left', 'top_right', 'bottom_left', 'bottom_right', 'left_top'(默认), 'right_top', 'right_bottom'str 'left_top'
sizing_mode尺寸调整模式str 'fixed'
width宽度int, str None
height高度int, str None
min_width最小宽度int None
min_height最小高度int None
max_width最大宽度int None
max_height最大高度int None
margin外边距int, tuple 5
css_classesCSS类名列表list []

属性值

  • widgets (ListPanel): 返回位于 widget_layout 中的小部件。

Slots

插槽名说明
default自定义默认内容

src/examples/panel_vuepy/panes/ReactiveExpr

ReactiveExpr 响应式表达式已经加载完毕