代码之家  ›  专栏  ›  技术社区  ›  ofhouse

使用react和JSX从API呈现富文本的技术

  •  4
  • ofhouse  · 技术社区  · 7 年前

    编辑器具有以下选项:

    • 使用标记用户 @username

    API然后从这个对象生成一个HTML字符串,并将其存储在数据库中以获得更好的性能,因为大多数条目是以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>
    

    但是afaik I’无法在react的渲染函数中或使用 dangerouslysetinnerhtml

    所以我认为我的api设计可能是错误的,但我缺乏更好的想法如何解决这个问题。

    1 回复  |  直到 7 年前
        1
  •  0
  •   ofhouse    5 年前

    已经有一段时间了,但在此期间 htm 该软件包已发布,本应解决该问题。

    使用htm,实际上可以在运行时(在服务器或浏览器上)解析JSX字符串,并将其连接到React api(如 React Preact 等)