
语言 🇨🇳 简体中文
🇺🇸
English
🇧🇬
Български
🇨🇳
简体中文
🇹🇼
繁體中文
🇭🇷
Hrvatski
🇩🇰
Dansk
🇳🇱
Nederlands
🇺🇸
English (US)
🇨🇦
Français (Canada)
🇫🇷
Français (France)
🇩🇪
Deutsch
🇨🇾
Ελληνικά (Κύπρος)
🇬🇷
Ελληνικά
🇮🇱
עברית
🇮🇹
Italiano
🇯🇵
日本語
🇰🇷
한국어
🇵🇱
Polski
🇧🇷
Português (Brasil)
🇷🇺
Русский
🇺🇦
Русский (Украина)
🇧🇦
Српски (БиХ)
🇷🇸
Srpski (Latinica)
🇲🇪
Српски (Црна Гора)
🇷🇸
Српски
🇸🇮
Slovenščina
🇪🇸
Español
🇺🇦
Українська
🇹🇷
Türkçe
文档
入门
用法
配置
Add Comments to Your SolidJS App
这是 FastComments 的官方 SolidJS 库。
在您的 SolidJS 应用中嵌入实时评论、聊天和审核小部件。
仓库
用法 
import { FastCommentsCommentWidget } from 'fastcomments-solidjs';
export default function App() {
return <FastCommentsCommentWidget tenantId="demo" urlId="some-page-id" />;
}
响应配置更改(命令式句柄) 
Solid 不会自动跟踪任意对象的深层变更,因此在首次渲染之后的配置更改必须显式推送。每个组件都接受返回一个句柄的 apiRef;在 createEffect 中调用 handle.update(partial) 以驱动响应性:
import { createEffect, createSignal } from 'solid-js';
import { FastCommentsCommentWidget, type FastCommentsCommentWidgetHandle } from 'fastcomments-solidjs';
export default function Paginated() {
const [page, setPage] = createSignal(0);
let handle: FastCommentsCommentWidgetHandle | undefined;
createEffect(() => handle?.update({ urlId: `product-${page()}` }));
return (
<>
<button onClick={() => setPage(page() + 1)}>next</button>
<FastCommentsCommentWidget
apiRef={(h) => (handle = h)}
tenantId="demo"
urlId={`product-${page()}`}
/>
</>
);
}
update() 在任何时候调用都是安全的:
- 在脚本加载之前:partial 会被暂存并在初始化时应用。
- 在异步初始化期间(reviews-summary、user-activity-feed):partial 会被排队并在回调解析时应用。
- 初始化之后:它会直接转发到实时组件的
.update()方法。
命令式句柄 API
interface WidgetHandle<Config> {
getInstance: () => WidgetInstance | null; // 最新的活动实例(或挂载前为 null)
onInstance: (cb: (instance: WidgetInstance) => void) => void; // 实例准备好时触发一次
update: (partial: Partial<Config>) => void; // 合并并推送配置
}
对于 .update() 未覆盖的命令式操作,例如 openProfile,请使用 getInstance():
const openProfile = () =>
(handle?.getInstance() as { openProfile?: (o: { userId: string }) => void } | null)
?.openProfile?.({ userId: 'demo' });
组件 
来自 fastcomments-react 的每个小部件都可使用相同的名称:
| 组件 | Handle 类型 | 加载的嵌入 |
|---|---|---|
FastCommentsCommentWidget |
FastCommentsCommentWidgetHandle |
旗舰实时评论小部件 |
FastCommentsCommentCountWidget |
FastCommentsCommentCountWidgetHandle |
内联评论计数徽章 |
FastCommentsLiveChatWidget |
FastCommentsLiveChatWidgetHandle |
流式实时聊天小部件 |
FastCommentsCollabChatWidget |
FastCommentsCollabChatWidgetHandle |
基于文本锚点的协作聊天 |
FastCommentsImageChatWidget |
FastCommentsImageChatWidgetHandle |
基于区域的图像评论 |
FastCommentsRecentCommentsWidget |
FastCommentsRecentCommentsWidgetHandle |
最新评论提要 |
FastCommentsRecentDiscussionsWidget |
FastCommentsRecentDiscussionsWidgetHandle |
最近讨论提要 |
FastCommentsReviewsSummaryWidget |
FastCommentsReviewsSummaryWidgetHandle |
星级评分汇总 |
FastCommentsTopPagesWidget |
FastCommentsTopPagesWidgetHandle |
评论最多页面排行榜 |
FastCommentsUserActivityFeedWidget |
FastCommentsUserActivityFeedWidgetHandle |
每用户的活动时间线 |
挂载到现有元素的组件
FastCommentsCollabChatWidget 和 FastCommentsImageChatWidget 会挂载到调用者提供的元素。传入一个 targetRef 访问器,该访问器在元素挂载后返回该元素:
import { FastCommentsImageChatWidget } from 'fastcomments-solidjs';
export default function ImageChat() {
let img: HTMLImageElement | undefined;
return (
<>
<img ref={img} src="/screenshot.png" alt="" />
<FastCommentsImageChatWidget
tenantId="demo"
urlId="my-image"
targetRef={() => img}
/>
</>
);
}
区域
传入 region="eu" 以将小部件流量通过欧盟集群路由。
需要帮助?
如果您在使用 SolidJS 库时遇到任何问题或有疑问,请:
贡献
欢迎贡献!请访问 GitHub 仓库 查看贡献指南。