Когда использовать против запроса страницы в Гэтсби? - PullRequest
1 голос
/ 20 апреля 2020

Как я понимаю в Gatsby, запрос страницы будет сделан на родительском уровне и передан в качестве подпорки дочерним компонентам. И <StatiQuery /> или useStaticQuery ловушка, когда вы находитесь внутри компонента и хотите получить некоторые данные для передачи в него. Какова лучшая практика и когда я должен использовать один поверх другого?

Я предполагаю, что это сводится к самому React, и если, например, у нас есть компоненты, которым нужны данные на глубоком уровне, мы будем использовать Context и передайте это, чтобы вам не пришлось передавать реквизит на более глубоких уровнях. Это так же, как это? Также, если у кого-то есть шаблоны, которые они используют.

1 Ответ

1 голос
/ 20 апреля 2020

Я обычно решаю, куда поместить свои данные в Гэтсби, отвечая на этот вопрос. Давайте предположим, что мы создаем интернет-магазин:

Нужно ли мне часто читать / записывать данные?

  1. Да (т.е. добавление / обновление элементов корзины): использовать Контекст

  2. Нет, но данные должны быть доступны по всему сайту (т. Е. Список продуктов для панели поиска): используйте sourceNodes и получайте данные с помощью useStaticQuery https://www.gatsbyjs.org/docs/node-apis/#sourceNodes

  3. Нет, но данные должны быть отображены на странице (то есть на странице продукта): используйте createPages и pageContext, а затем передайте необходимые данные на созданную страницу https://www.gatsbyjs.org/docs/node-apis/#createPages

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

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...