Javascript 使用Firebase&;存储丰富文章内容的最佳方式;Vue?
我正在使用Firebase&Vue创建一个动态站点。网站的一个部分将包含数百个以下形式的文章页面:Javascript 使用Firebase&;存储丰富文章内容的最佳方式;Vue?,javascript,html,firebase,vue.js,nosql,Javascript,Html,Firebase,Vue.js,Nosql,我正在使用Firebase&Vue创建一个动态站点。网站的一个部分将包含数百个以下形式的文章页面: <article> <!-- order of these elements will not change --> <h1>Article title</h1> <div id="date">1/1/2021</div> <div id="author">Author<
<article>
<!-- order of these elements will not change -->
<h1>Article title</h1>
<div id="date">1/1/2021</div>
<div id="author">Author</div>
<div id="tags">Tag1, Tag2, Tag3</div>
<div id="content">
<!-- order of elements varies based on needs of article. sample elements below -->
<h2 class="subtitle>Subtitle 1</h2>
<p class="text"><span class="smallcaps">Lorem ipsum dolor</span> sit amet, consectetur adipiscing elit, <a href="https://example.com/">link</a>.</p>
<blockquote>"An embedded tweet"</blockquote><script async src="https://platform.twitter.com/widgets.js"></script>
<h2 class="subtitle>Subtitle 2</h2>
<p class="text">Excepteur sint occaecat cupidatat non:</p>
<figure><img src="img.jpg"/><figcaption>Caption</figcaption></figure>
<h2 class="subtitle>Subtitle 3</h2>
etc...
</div>
</article>
<!-- comments feature below -->
“嵌入式推文”
副标题3
等
在存储文章内容方面,我遇到了三种选择,但没有一种是理想的:
innerHTML
将该字段的内容注入
。使用一个Article.vue
文件导入并显示Firebase集合中的每个Article
文档。虽然这很容易解决我的问题,但我担心XSS攻击,特别是因为我有时会使用
嵌入来自Twitter和YouTube等社交媒体网站的内容
subtitle1
,paragraph1
,blockquote1
,subtitle2
,paragraph2
,等等)。使用一个Article.vue
文件导入并显示文章的元素。我已经计划使用标准化元素,如title
、date
和author
,但对
中的元素这样做将消除文章结构的可变性。即使是在段落中处理外部链接(即,
),如果不是不可能的话,也是痛苦的
.vue
文件。这允许对每篇文章进行完全定制,但不能很好地扩展到数百或数千篇文章
有更好的选择吗,还是我只能选择这三个选项中的一个?我不想安装像WordPress这样的CMS软件,以保持网站的一致性。我认为这个问题的答案很大程度上是基于观点的。话虽如此,基于一些研究和个人专业经验,我可以给出一些一般性的建议 意见
vue
组件?您如何确定哪篇文章获得了什么视图?如果每篇文章都有自己完整的vue
组件,那么您的项目中就有数千个组件(对于更大的应用程序,有几十万个组件),我无法想象您托管它的服务器会承受多大的负载。我怀疑大多数服务器都不能处理这个问题Firebase/Firestore
中构建CMS引擎,因为Firebase是为快速、不断变化的数据而构建的,最适合移动应用程序、小型web应用程序和微服务。这方面的历史和信息非常丰富。将其作为CMS使用可能是绝对可能的,但您会将其推向极限,并且可能会因为生产应用程序中的数据库使用而收到巨额账单,而不是在Heroku或类似设备上托管单独的API
我已经专业开发了大约4年了,根据我的经验,CMS级架构在任何平台上都很难实现,即使是功能强大的框架,如Rails、.NET和Django
尽管如此,如果这个答案没有考虑其他因素,我可能会选择你的第一个选择。它将允许用户最自由、最可维护(您只需拥有一个
article\u content
component或div,并在那里处理所有样式),并且只要您的数据库能够处理它,并且您能够正确地转义HTML(大多数框架会自动执行此操作),您就可以开始了。Otter,这非常有用。我不熟悉你提到的降价和Flamelink选项。该研究了!非常感谢。