Логотип

Sanity.io: Простое руководство для старта и ускорения разработки с React и TypeScript

Енот держит коробку
233

Sanity.io современная headless CMS, которая позволяет разработчикам гибко управлять контентом для веб-приложений. Она создана для того, чтобы сделать вашу разработку проще, быстрее и масштабируемее.

Что такое Sanity.io?

Sanity.io — это облачная платформа для управления контентом, которая использует подход headless CMS. Это значит, что Sanity предоставляет мощный API для работы с данными, а интерфейс управления контентом можно настроить под ваши нужды.

Ключевая особенность Sanity — это Studio, редактор контента, написанный на React. Вы можете кастомизировать его под свои требования, добавляя кастомные схемы и плагины.

Преимущества использования Sanity

  1. Гибкость и масштабируемость: Вы можете создавать любые типы контента и использовать их в приложениях, сайтах или мобильных платформах.
  2. Быстрое развертывание: Sanity Studio — это готовый редактор, который можно развернуть за считанные минуты.
  3. Реальное время: Поддержка обновления данных в реальном времени. Это значит, что изменения контента сразу отображаются на сайте или в приложении.
  4. Удобство для разработчиков: Использование мощных инструментов, таких как GROQ (запросы данных), удобные SDK и RESTful API.
  5. Бесплатный тариф: Для небольших проектов достаточно бесплатного плана, который предоставляет все основные функции.

Как начать с Sanity

1. Установка CLI: Для начала работы установите Sanity CLI через

1npm install -g @sanity/cli

2. Создание нового проекта: Создайте новый проект командой

1sanity init

Выберите шаблон и настройте проект.

3. Развертывание Studio: После настройки студии запустите её локально:

1sanity start

также можете развернуть Studio в облаке командой:

1sanity deploy

4. Подключение API: Получите ключи API в панели управления Sanity, чтобы интегрировать CMS с вашим фронтендом.

Быстрый старт проекта с React и TypeScript

1. Установите зависимости

В корне вашего проекта React установите следующие зависимости:

1npm install @sanity/client @sanity/image-url

2. Настройте Sanity клиент

Создайте файл sanityClient.ts для настройки клиента:

1import sanityClient from '@sanity/client';
2import imageUrlBuilder from '@sanity/image-url';
3
4const client = sanityClient({
5  projectId: 'your_project_id', // ID проекта из Sanity
6  dataset: 'production',       // Название dataset (обычно production)
7  apiVersion: '2023-01-01',    // Версия API
8  useCdn: true,                // Использовать CDN для кэширования
9});
10
11const builder = imageUrlBuilder(client);
12
13export const urlFor = (source: any) => builder.image(source);
14export default client;

3. Получение данных из Sanity

В компоненте React вы можете использовать клиент для получения данных:

1import React, { useEffect, useState } from 'react';
2import client, { urlFor } from './sanityClient';
3
4type Post = {
5  title: string;
6  body: string;
7  mainImage: any;
8};
9
10const App: React.FC = () => {
11  const [posts, setPosts] = useState<Post[]>([]);
12
13  useEffect(() => {
14    client
15      .fetch(`*[_type == "post"]{ title, body, mainImage }`)
16      .then((data) => setPosts(data))
17      .catch(console.error);
18  }, []);
19
20  return (
21    <div>
22      <h1>Список постов</h1>
23      {posts.map((post, index) => (
24        <div key={index}>
25          <h2>{post.title}</h2>
26          <p>{post.body}</p>
27          {post.mainImage && <img src={urlFor(post.mainImage).url()} alt={post.title} />}
28        </div>
29      ))}
30    </div>
31  );
32};
33
34export default App;

4. Запустите проект

Теперь запустите приложение:

Как Sanity ускоряет разработку

  1. Минимальная настройка: Sanity предлагает готовые инструменты для быстрого старта.
  2. Удобное управление контентом: Клиенты или редакторы могут работать с понятным интерфейсом Studio, не обращаясь к разработчикам.
  3. Гибкость интеграции: Вы можете использовать Sanity как основу для любого стека: React, Vue, Angular и т.д.

Заключение

Sanity.io — это мощный инструмент для разработчиков, который позволяет быстро создавать гибкие проекты с React и TypeScript. Используя headless CMS, вы получаете полный контроль над данными, упрощаете управление контентом и экономите время на разработке. Попробуйте интегрировать Sanity в свой следующий проект и убедитесь в его преимуществах сами.