Создание гибридных страниц с помощью Gatsby.js

Недавно я решил создать PWA с помощью Gatsby.js. Я намеревался иметь

  1. домашняя страница
  2. Страница со списком продуктов
  3. Страница отображения продукта

Я мог бы легко сделать домашнюю страницу, так как содержимое этой страницы почти статично.

У меня была страница со списком продуктов, на которой слева были фильтры. Как только я выберу фильтры, список отфильтрованных продуктов будет показан при нажатии на Shopify API. Я чувствую, что это невозможно сделать с Gatsby, используя их слой GraphQL, поскольку он извлекает данные во время сборки и не может обрабатывать данные в реальном времени как таковые. Поэтому я считаю, что должен получать данные только из React и управлять приложением оттуда. Точно так же у меня есть разбивка на страницы, которую было бы сложно построить, поскольку она должна делать запрос каждый раз, когда мы переходим на следующую страницу.

Мой вопрос будет заключаться в том, как мы можем мыслить оптимальным образом для создания таких приложений с использованием gatsby.


person Prasanna Mahendiran    schedule 13.07.2018    source источник
comment
Я также искал пример с gatsby и pwa и нашел это. Может быть, это поможет и вам. github.com/snipcart/gatsby-pwa-demo   -  person Aleksandar    schedule 04.09.2018


Ответы (1)


Довольно широкий вопрос, ИМО плюс отсутствие кода или идей архитектуры приложений/файлов или макетов планов ?? Я не могу раскладывать всю архитектуру, разработку и дизайн за вас. Но я создал приложение, работающее с относительно похожими средами.

Используйте методы CI/CD с надежной CMS в качестве источника данных, gatsby-source-contentful и, что наиболее важно, лямбда, это ваш лучший друг.

Подумайте о какой-нибудь причудливой файловой структуре, создайте собственные команды сборки в package.json,

пример:build": "gatsby build && netlify-lambda build lambda-src"

Таким образом, обычный файл gatsby src и файл lambda src разделены. Вот отличный инструмент для этого проекта https://github.com/netlify/netlify-lambda#readme.

person Nicholas Cappello    schedule 13.07.2018
comment
спасибо, чтобы избежать избытка аббревиатур для удобочитаемости вашего ответа - person Webwoman; 07.08.2018