【发布时间】:2018-03-10 13:30:01
【问题描述】:
我最近在使用富文本编辑器,它向我的 API 发送一个 JSON 对象,其中包括所有文本和格式。
编辑器有以下选项:
- 基本文本格式(例如粗体、斜体)
- 用
@username标记用户
API 然后从这个对象生成一个 HTML 字符串并将其存储在数据库中以获得更好的性能,因为大多数条目是 cmet,它们以 15 个项目为一批次加载。
标记的用户将被删除并替换为占位符{{userX}}。
剥离的数据单独存储在值 JSON 模式中。
保存为 HTML 后如下所示:
<p>
Hello {{user1}},
<strong>how are you doing?</strong>
</p>
还有这样的价值观:
{
"user1": {
"text": "@anna",
"username": "anna"
}
}
这样做的主要原因是我必须在客户端生成链接才能使其与react-router 一起使用。
所以我的想法是在客户端将它渲染成这样的东西:
<p>
Hello <Link to="/users/anna">@anna</Link>,
<strong>how are you doing?</strong>
</p>
但是我无法在 react 的渲染函数中或使用 dangerouslysetinnerhtml 渲染这个动态 JSX 代码。
所以我认为我的 api 设计可能是错误的,但我缺乏更好的想法来解决这个问题。
【问题讨论】:
标签: reactjs api-design richtext