【问题标题】:How to render html from database in Vue如何在Vue中从数据库中渲染html
【发布时间】:2020-01-08 08:33:18
【问题描述】:

我正在使用 Vue.js 作为前端,使用 Node.js 作为后端来制作博客应用程序。

我在前端使用富文本编辑器 (vue2-editor) 供用户创建博客内容。我想将该内容存储在数据库(MySQL)中并检索它。目前,我存储的任何内容都是纯 HTML。

<p><strong>This is Blog Heading</strong></p><p><br></p><p><u>This is underlined</u></p><p><br></p><p>This is start of the paragraph</p>

从数据库中检索后,它呈现为字符串而不是 HTML

如何让它正确显示 HTML?

【问题讨论】:

    标签: mysql vue.js vuejs2 vue-component rich-text-editor


    【解决方案1】:

    使用v-html 将其显示为 html 而不是字符串。

    您可以在此处阅读更多信息:

    https://vuejs.org/v2/guide/syntax.html

    示例:

    <div v-html="htmlFromDb" />
    

    【讨论】:

    • 谢谢..我完全忘记了..顺便说一句,你能告诉我..可以将 html 存储在数据库中吗?我的意思是“这是正确的实施方式吗”?
    • 在数据库中存储 html 并没有什么危险。但是,当您在用户浏览器中显示它时,可能会出现危险。例如,如果您在数据库中存储恶意 javascript,则不会发生任何事情。但是当它被加载到用户浏览器中时,它可能会造成一些伤害。因此,也许可以添加一些检查并确保只有您信任的人/现在他们正在做的事情才能存储 html。
    • 好的,谢谢.. 很抱歉再次打扰您.. 但我还有最后一个问题.. 如果用户添加了许多图像和文本.. 它会影响我的数据库吗?我的意思是,在大小方面。以及存储此类内容的数据库中列的类型应该是什么。我在mysql中将列的类型设置为TEXT
    • 您不应该将图像存储到数据库中,而是存储路径。这样就不会有尺寸问题。对于长文本TEXT 是一个不错的选择。
    【解决方案2】:

    据我所知为您提供解决方案,希望对您有所帮助。请看一下代码。

    <p><strong>This is Blog Heading</strong></p>
    <p><br></p>
    <p><u>This is underlined</u></p>
    <p><br></p>
    <p>This is start of the paragraph</p>

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-09-05
      • 2018-12-15
      • 1970-01-01
      • 2013-09-25
      • 1970-01-01
      • 2021-05-16
      • 2018-10-15
      • 2015-12-27
      相关资源
      最近更新 更多