Анонс gatsby-source-storyblok V4

Мы хотели бы объявить о выпуске gatsby-source-storyblok V4 для улучшения Storyblok x Gatsby DX🥳.

Мы проанализировали, как проекты Gatsby & Storyblok обрабатываются иначе, чем наш @storyblok/react SDK, и позаботились о болевых точках, чтобы доставить меньше сложностей.

Дайте нам знать, как вам работается с нашим SDK gatsby-source-storyblok V4!

Отдельное спасибо Алексу за его тяжелый труд; потрясающая совместная работа 🙏.

Вам нужен TL;DR? Вы можете перейти прямо к LIVE DEMO в CodeSandbox прямо сейчас.

Использование

Прежде всего, установите gatsby-source-storyblok, выполнив команду ниже.

npm install gatsby-source-storyblok
// yarn add gatsby-source-storyblok
Войти в полноэкранный режим Выйти из полноэкранного режима

Инициализация

Следующим шагом зарегистрируйте плагин в вашем приложении и добавьте токен доступа из вашего пространства Storyblok.

Т.е. вы можете инициализировать всего один раз в components/layout.jsx, если вы используете gatsby-source-storyblok для своих проектов Gatsby.

Если вы хотите использовать клиент API Storyblok, вы можете добавить apiPlugin.

import { storyblokInit, apiPlugin } from "gatsby-source-storyblok";
import Page from "./components/Page.jsx";
import Teaser from "./components/Teaser.jsx";

storyblokInit({
  accessToken: "YOUR_ACCESS_TOKEN",
  // bridge: true,
  use: [apiPlugin],
  components: {
    page: Page,
    teaser: Teaser,
  },
});
Вход в полноэкранный режим Выход из полноэкранного режима

Вы кое-что поняли? 😎

Вам больше не нужно самостоятельно обрабатывать условно возвращаемые компоненты!

Мы обо всем позаботились, и вам просто нужно добавить все ваши компоненты в объект components в функции storyblokInit, и все!

Запрос API Storyblok и прослушивание изменений визуального редактора

Вы можете использовать удобный хук useStoryblokState(originalStory, bridgeOptions), чтобы получить историю из API CDN Storyblok и автоматически использовать Storyblok Bridge для прослушивания изменений в визуальном редакторе.

// pages/index.jsx
import { useStoryblokState } from "gatsby-source-storyblok"

import Layout from "../components/layout"

const IndexPage = ({ data }) => {
  let story = data.storyblokEntry
  story = useStoryblokState(story)

  return (
    <Layout>
      <h1>{story.name}</h1>
    </Layout>
  )
}

export default IndexPage

export const query = graphql`
  query HomeQuery {
    storyblokEntry(full_slug: { eq: "home" }) {
      name
      full_slug
    }
  }
`
Вход в полноэкранный режим Выход из полноэкранного режима

Свяжите ваши компоненты с визуальным редактором Storyblok

Для каждого компонента React, который вы хотите связать с соответствующим компонентом Storyblok, вы можете использовать функцию storyblokEditable с содержимым blok, где blok — это фактические данные blok, поступающие из Storyblok’s Content Delivery API.

// components/Feature.jsx
import { storyblokEditable } from "gatsby-source-storyblok";

const Feature = ({ blok }) => {
  return (
    <div {...storyblokEditable(blok)} key={blok._uid}>
      <div>{blok.name}</div>
      <p>{blok.description}</p>
    </div>
  );
};

export default Feature;
Вход в полноэкранный режим Выйти из полноэкранного режима

Затем <StoryblokComponent blok={blok} /> позаботится о том, чтобы загрузить их за вас 😉.

Пример

TL;DR: Поиграйте с Gatsby LIVE DEMO

Следующие шаги

Хотите внести свой вклад? Вы можете создать проблему или PR в репозитории Gatsby SDK или связаться с нами.

Ресурс

  • gatsby-source-storyblok docs: https://www.npmjs.com/package/gatsby-source-storyblok
  • Storyblok Learning Hub: https://www.storyblok.com/docs
  • Веб-сайт Storyblok, анонсирующая запись в блоге: https://www.storyblok.com/mp/announcing-gatsby-sdk-v4

Оцените статью
Procodings.ru
Добавить комментарий