#header-mark#
Reacton 组件
PnReacton 组件可以在 Panel 应用程序中渲染 Reacton 组件,无论是在笔记本中还是在部署的服务器上。Reacton 提供了一种以类似 React 的方式编写可重用组件的方法,用于使用 ipywidgets 生态系统(ipywidgets、ipyvolume、bqplot、threejs、leaflet、ipyvuetify 等)构建基于 Python 的 UI。请注意,Reacton 主要是一种编写应用程序的方法。
在笔记本中,这不是必需的,因为 Panel 只是使用常规的笔记本 ipywidget 渲染器。特别是在 JupyterLab 中,以这种方式导入 ipywidgets 扩展可能会干扰 UI 并使 JupyterLab UI 无法使用,因此请谨慎启用扩展。
底层实现为panel.pane.Reacton,参数基本一致,参考文档:https://panel.holoviz.org/reference/panes/Reacton.html
基本用法
panel_vuepy 函数会自动将任何 Reacton 组件转换为可显示的面板,同时保持其所有交互功能:
结合 Reacton 和 Panel 组件
Reacton 可以与 Panel 组件结合使用,但我们需要做两个修改:
- Panel 组件必须使用
pn.ipywidget包装器包装为 ipywidget(这需要jupyter_bokeh)。 - 包装后的 Panel 组件必须添加到 reacton 布局组件中。
在下面的示例中,我们将 reacton.ipywidgets.Button 替换为 PnButton,然后用 pn.ipywidget 和 reacton.ipywidgets.VBox 包装它:
复杂示例
可以在 Reacton 中构建更复杂的应用程序并在 Panel 中显示。以下是 Reacton 文档中的计算器示例。
逻辑
使用 ipyvuetify
Reacton 也可以与 ipyvuetify 结合使用,创建更美观的界面:
API
属性
| 属性名 | 说明 | 类型 | 默认值 |
|---|---|---|---|
| object | 被显示的 Reacton 组件对象 | object | None |
| default_layout | 包装图表和小部件的布局 | pn.layout.Panel | Row |
| 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_classes | CSS类名列表 | list | [] |
Events
| 事件名 | 说明 | 类型 |
|---|
Slots
| 插槽名 | 说明 |
|---|---|
| default | 自定义默认内容 |
方法
| 属性名 | 说明 | 类型 |
|---|
src/examples/panel_vuepy/panes/Reacton