【问题标题】:What are the best ways to save data for the project without using database?在不使用数据库的情况下为项目保存数据的最佳方法是什么?
【发布时间】:2020-10-20 18:56:33
【问题描述】:

我正在使用 gatsby 开发一个小型前端电子商务项目,我想将我的购物项目 (10 - 15) 数据保存在其他地方但不保存在数据库中,因为它只是前端项目.我不想在 jsx 中对项目进行硬编码,因为我认为这是一种不好的做法,所以我想像这样在 json 文件中手动写下所有项目的详细信息

{
"name": "ps4",
"price": "$400",
},
...

并使用 graphQL 取回这些数据。我想知道这是一个好方法还是有更好的方法来实现?

【问题讨论】:

  • 如你所说 - *.json 文件。在我看来,由于它是分离的,所以它很方便且易于维护。

标签: json reactjs graphql frontend gatsby


【解决方案1】:

这取决于...

  • gatsby 源几乎可以是任何东西 (json/yaml/md/js/graphql/rest/WP/....);
  • 数据(默认)在使用 graphQL 仅在构建期间可用
  • 数据更新需要 gatsby 项目重建/重新部署

如果您需要为每个产品生成页面并希望它们生成(SEO 原因)重建是必要的。

当然,您可以将它(混合解决方案)与价格/库存等动态数据/部分混合。

如果您想从动态来源读取整个/部分产品数据:

  • 您可以使用 graphQL 或简单的 json 文件作为数据源;
  • 您可以使用 Apollo 客户端进行运行时 graphQL 获取,但它需要 graphQL 服务器/源 (API) -(gatsby 在内部作为 graphql 源/'服务器'+客户端工作,但仅在构建期间);
  • 您可以使用简单/轻量级 fetch/ajax 从文件中加载 json 数据,也可以从 graphql 源加载 json 数据

【讨论】:

    【解决方案2】:

    这在一定程度上取决于您的用例。如果没有太多不同的产品,它们不会经常更改,并且唯一更新列表的人是您,那么我认为将它们与代码一起放在一个文件中就可以了。

    但是,如果非开发人员需要能够更改列表,这是一个很长的列表或列表经常更改,我认为将其留在代码之外会更好。它不需要是数据库,您可以使用 Shopify 或 Airtable 等在线服务。

    【讨论】:

    • 谢谢,我也会去看看 shopify 和 Airtable。
    • 这只是两个随机的例子。有许多 SaaS 解决方案,您可以在其中存储数据并从中提取数据。通过查看 Gatsby 提供的源插件,您可能会得到一些想法。
    猜你喜欢
    • 2011-01-15
    • 1970-01-01
    • 2016-05-19
    • 1970-01-01
    • 1970-01-01
    • 2014-08-04
    • 1970-01-01
    • 1970-01-01
    • 2018-06-16
    相关资源
    最近更新 更多