跳到內容

React

React 進入點是很薄的一層:每個元素一個元件,所以 React 宿主從不直接碰自訂元素。

import { PbsBlock, PbsForm } from "pi-better-show/react";
<PbsBlock segment={segment} doc="chat-7" onAnswer={(answer) => send(encodeAnswer(answer))} />
<PbsForm data={formData} answered={fields} density="compact" onAnswer={...} />

每個元素一個元件(PbsCallout … PbsTree),外加 PbsBlock:它用該種類的元素畫出一個 parse 片段,並以它的 index 定位。Props:data、answered、onAnswer(answer, event)(回傳 false 表示拒絕)、blockRef、density、scheme、lang、className、id、ref。父元件以相同的 data 重新渲染,不會重畫元素,也不會清掉使用者輸入的內容。需要 React 19 或更新版本,作為選用的 peer dependency。