不使用数据库保存项目数据的最佳方法是什么?

时间:2020-06-30 12:57:10

标签: json reactjs graphql frontend gatsby

我正在使用 gatsby 开发一个小型的前端电子商务项目,我想将购物商品(10-15)数据保存在其他地方,而不是保存在数据库中,因为这是仅前端项目。我不想在jsx中对项目进行硬编码,因为我认为这是一种不好的做法,因此我正在考虑手动将所有项目详细信息记录在json文件中,例如

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

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

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

这取决于...

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

如果您需要为每个产品生成页面并希望生成它们(出于SEO原因),则需要重新构建。

当然,您可以将其(混合解决方案)与动态数据/零件(如价格/库存)混合。

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

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