«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Отображение данных в Гэтсби

Отображение данных в Гэтсби

Опубликовано 1 ноября 2024 г.
Просматривать:950

Data Display in Gatsby

Gatsby — это мощный генератор статических сайтов на основе React, который позволяет разработчикам создавать быстрые и масштабируемые веб-сайты и приложения. Одним из ключевых аспектов создания эффективных веб-сайтов является эффективное отображение данных для пользователей. В Gatsby отображение данных может быть достигнуто с использованием комбинации GraphQL, компонентов React и сторонних источников данных, таких как headless CMS, API и локальные файлы.

В этой статье мы рассмотрим процесс получения и отображения данных в приложении Gatsby, уделяя особое внимание ключевым принципам, стратегиям и лучшим практикам эффективного отображения данных.

1. Понимание уровня данных Гэтсби

Уровень данных Gatsby построен на основе GraphQL, который действует как язык запросов, позволяющий разработчикам запрашивать именно те данные, которые им нужны. Gatsby глубоко интегрируется с GraphQL, что позволяет легко извлекать данные из различных источников, таких как файлы Markdown, файлы JSON или внешние API, и отображать их в компонентах React.

Шаги для отображения данных в Gatsby обычно включают в себя:

  • Извлечение данных из внешнего или внутреннего источника
  • Структурирование данных с помощью запросов GraphQL
  • Отображение данных с помощью компонентов React

2. Настройка запросов GraphQL в Gatsby

Gatsby поставляется со встроенным слоем GraphQL, который позволяет легко получить доступ к источникам данных. Вы можете использовать запросы GraphQL для извлечения данных из:

  • Локальные файлы, такие как Markdown или JSON
  • Платформы CMS, такие как Contentful, Strapi или WordPress
  • API и базы данных

Пример 1. Запрос данных Markdown

Предположим, вы создаете блог и пишете свои сообщения в файлах Markdown. Вы можете запросить файлы Markdown с помощью плагина gatsby-transformer-remark от Gatsby и отобразить содержимое в своих компонентах React.

export const query = graphql`
  query BlogPostQuery {
    allMarkdownRemark {
      edges {
        node {
          frontmatter {
            title
            date
          }
          excerpt
        }
      }
    }
  }
`

Затем вы можете визуализировать полученные сообщения блога в своем компоненте с помощью JSX:

const Blog = ({ data }) => (
  
{data.allMarkdownRemark.edges.map(({ node }) => (

{node.frontmatter.title}

{node.excerpt}

{node.frontmatter.date}
))}
)

Пример 2. Запрос данных из CMS (с контентом)

Если вы используете автономную CMS, например Contentful, вы можете запросить свои данные, установив плагин gatsby-source-contentful, который интегрирует Gatsby с API Contentful. Вот пример получения сообщений блога из Contentful:

export const query = graphql`
  query ContentfulBlogPostQuery {
    allContentfulBlogPost {
      edges {
        node {
          title
          publishedDate(formatString: "MMMM Do, YYYY")
          body {
            childMarkdownRemark {
              excerpt
            }
          }
        }
      }
    }
  }
`

Теперь вы можете отображать данные так же, как при использовании Markdown:

const Blog = ({ data }) => (
  
{data.allContentfulBlogPost.edges.map(({ node }) => (

{node.title}

{node.body.childMarkdownRemark.excerpt}

{node.publishedDate}
))}
)

3. Рендеринг внешних данных через API

Хотя источники статических данных Gatsby (например, Markdown, CMS) великолепны, могут быть случаи, когда вам необходимо динамически получать внешние данные из API. Вы можете использовать перехватчик useEffect в React для получения данных и их отображения на стороне клиента. Например, вот как вы можете получить данные из внешнего API, такого как конечная точка REST или сервис GraphQL:

import React, { useEffect, useState } from "react";

const DataDisplay = () => {
  const [data, setData] = useState([]);

  useEffect(() => {
    // Fetch data from an external API
    fetch('https://api.example.com/data')
      .then(response => response.json())
      .then(result => setData(result))
      .catch(error => console.error('Error fetching data:', error));
  }, []);

  return (
    
{data.map(item => (

{item.name}

{item.description}

))}
); }; export default DataDisplay;

4. Оптимизация отображения данных с помощью Gatsby

Gatsby предлагает несколько способов оптимизации отображения данных и повышения производительности:

Пагинация

При отображении больших наборов данных важно разбивать данные на страницы, чтобы сократить время загрузки страницы и сделать контент более управляемым. API createPages от Gatsby можно использовать для динамического создания страниц с разбивкой на страницы.

const Blog = ({ pageContext, data }) => {
  const { currentPage, numPages } = pageContext;

  return (
    
{data.allMarkdownRemark.edges.map(({ node }) => (

{node.frontmatter.title}

{node.excerpt}

))}
); };

Ленивая загрузка

Отложенная загрузка — это метод, который откладывает загрузку второстепенных ресурсов, повышая производительность. Например, gatsby-image от Gatsby может оптимизировать изображения, а React.lazy или динамический импорт могут откладывать загрузку компонентов.

import { LazyLoadImage } from 'react-lazy-load-image-component';

Генерация статического сайта

Процесс сборки Gatsby предварительно преобразует страницы в статический HTML, что значительно повышает производительность. Однако он также позволяет получать и вставлять динамический контент во время выполнения, используя рендеринг на стороне клиента.

5. Визуализация данных с помощью Гэтсби

Эффективное отображение данных иногда предполагает использование таких визуализаций, как диаграммы и графики. Вы можете интегрировать библиотеки визуализации данных, такие как Chart.js или D3.js, в свой проект Gatsby для визуализации визуальных представлений данных.

import { Line } from "react-chartjs-2";

const data = {
  labels: ['January', 'February', 'March', 'April', 'May'],
  datasets: [
    {
      label: 'Sales',
      data: [65, 59, 80, 81, 56],
      fill: false,
      backgroundColor: 'rgb(75, 192, 192)',
      borderColor: 'rgba(75, 192, 192, 0.2)',
    },
  ],
};

const MyChart = () => (
  

Sales Over Time

);

Заключение

Отображение данных в Gatsby — это гибкий и эффективный процесс благодаря интеграции с GraphQL и архитектуре на основе React. Независимо от того, извлекаете ли вы данные из локальных файлов, CMS или API, Gatsby обеспечивает прочную основу для создания высокопроизводительных веб-приложений с широкими возможностями отображения данных. Внедряя нумерацию страниц, отложенную загрузку и другие методы оптимизации, вы можете гарантировать, что ваш сайт Gatsby останется быстрым и отзывчивым даже при обработке больших наборов данных.

Заявление о выпуске Эта статья воспроизведена по адресу: https://dev.to/shieldstring/data-display-in-gatsby-1l1c?1. В случае нарушения прав свяжитесь с [email protected], чтобы удалить ее.
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3