Создание компонента страницы React

В создании компонента React есть три главных шага:

  1. Импортировать React из пакета react, чтобы можно было использовать разметку JSX в .js-файлах.
  2. Определить компонент. Это должна быть функция, которая возвращает элемент JSX.
    1. Я тут ничего не понял, но пошли дальше. Если это будет важно именно для создания страницы, придётся вернуться.
  3. Экспортировать компонент, чтобы его можно было использовать как в других частях сайта.

Вот пример такого кода:

// Step 1: Import React. This lets you use JSX inside your .js file.
import * as React from 'react'

/* Step 2: Define your component. Note that your
component name should start with a capital letter. */
const MyComponent = () => {
  return (
    <h1>Hi, welcome to my site!</h1>
  )
}

/* Step 3: Export your component so it
can be used by other parts of your app. */
export default MyComponent

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

В случае этого кода, ты создаёшь некий компонент в виде html-кода, который потом можно тупо вставлять на страницу, а не переписывать заново. Вот как пример в Коде: ссылку написал не 15 раз, а создал компонент и потом тупо вставляешь код компонента.

То есть мы тут создали компонент MyComponent в файле my-component.js, при вызове которого приходит ответ в виде кода заголовка, и экспортировали его, чтобы можно было использовать в других местах нашего сайта. Так?

Компонент может включать в себя сколько угодно элементов, но они все должны быть объединены в один верхнеуровневый элемент. Вот на примере, правильный компонент содержит несколько элементов, объединённых тегом <div>, и неправильный, где просто два тега:

import * as React from 'react'

const ValidComponent = () => {
  return (
    <div>
      <h1>A valid component!</h1>
      <p>This will work fine.</p>
      <p>
        Since there is only one top-level element: the div.
      </p>
    </div>
  )
}

const InvalidComponent = () => {
  return (
    <h1>This won't work.</h1>
    <p>Because there are two elements at the top level.</p>
  )
}

Notes mentioning this note


Here are all the notes in this garden, along with their links, visualized as a graph.

0. Set Up Your Development Environment1. Create and Deploy Your First Gatsby Site2. Use and Style React Components202204232218A brief history & ethos of the digital gardenA quick intro to ReactAccount CreationAppleAttlassianBackground KnowledgeBuild your site with Gatsby CloudCmsCSSConfluenceCreate a page componentDaily Notes PagesDaily NotesForestDigital Garden на Github Pages и JekyllDigital gardenENCODEGatsby CLIGatsby CloudGatsby theme gardenGatsby использует GitGatsby создан с Node.jsGatsby — это платформа для создания сайтовGatsby the quick startGatsbyGitGithub desktopGithub pagesGitHubGraphQLHTMLHomebrewHow i reward myself with good habits – the kozukai...How to grow your own digital garden with maggie...Installation GuideJavaScriptJiraLYTLinking Your Thinking HomepageLinking Your ThinkingMDXMac installerMacportsMindstoneMotifMy blog is a digital garden, not a blogNode.jsNota скрывает ссылку даже в маркдаунNotaNotionObsidian publishObsidian01-05-202221-04-202222-04-202224-04-202225-04-202226-04-202227-04-202228-04-202229-04-202230-04-2022Daily NotesQuartzReactSet up a GitHub repo for your siteTildaTrelloTutorial learn how gatsby works 2Tutorial: Learn how Gatsby worksTutorial learn how gatsby works2Visual Studio CodeWordpressXcodeiA WriternpmWrite Notes Name In EnglishАтомарные заметки“Библиография”БлогБуллет джорналВ работу с головой, кэл ньюпортВ туториале Gatsby хорошо объяснили, что такое...Вечнозелёные заметки энди матушакаВпечатления от Радость познания ФейнманаВы, конечно, шутите, мистер фейнман, ричард...Геймификация в приложениях для продуктивности...Генератор статических сайтовДля каждой абстрактной идеи следует придумать...Добавить функцию создания файла в той же папкеЗаметки энди матушака атомарныЗаметки энди матушака концептуально ОриентированыЗаметки энди матушака не совсем цифровой садЗаметки энди матушака отличаются от замёток в...Заметки по книге по методу адлераЗаметкиЗапуск сайта Gatsby на компьютереЗарегистрироваться на Gatsby CloudЗарегистрироваться на GitHubЗачем читать книгиЗачем читатьЗнание — результат на стыке информации и пониманияИзбранные файлы в notaИзменить главную страницу цифрового садаИзменям контент главной страницыИнструкция для командной строки на macИнформация сама по себе бесполезнаИнформация — это ещё не знанияКак Gatsby использует ReactКак вести умные заметкиКак получить доступ к бета-версии MotifКак привести дела и жизнь в порядокКак работают сайты на GatsbyКак установить Git с помощью HomebrewКак установить HomebrewКак читать книги мортимер адлерКнига — основной источник знанийКомандная строкаКомпонент ReactКопировать Quartz в свой репозиторийКэл ньюпортМногооконный режим в notaМортимер адлерМэгги эпплтонНа большинстве компьютеров Mac Git уже установленНавык обретается через знаниеНадо понимать, как учитьсяНаилучший результат достигается постоянными...Объясняй своими словамиОдна и та же книга может использоваться для разных...Опубликовать репозиторий на GitHub PagesОшибка Gatsby из-за установки NodeПеренести код с компьютера на GitHubПлагины gatsbyПоменять шаблон quartzПривязать свой домен к GitHub PagesПриложения для заметокПродвижение блога в телеграмеПродвижение блогаПроекты в буллет джорналПубликацию заметок в блоги и цифровые сады в notaПубликация ссылок в сообществах со временем...Публичные заметкиПубличные заметкиРадость познания, Ричард ФейнманРазница между информацией и знаниемРайан ХолидейРазница между таймбоксингом и таймблокингомРешения для digital gardenРичард фейнманСамообразованиеСамосовершенствованиеСервер разработкиСоединить аккаунт Gatsby Cloud с GitHubСоздание компонента страницы ReactСоздание нового сайта GatsbyСоздание цифрового сада с Quartz на GitHubСоздать репозиторий на GitHubСоздаём новую страницу aboutСписок источников о digital gardenСравнение пережитого или переживаемого с...Статьи из интернетаТаймблокингТаймбоксингТермин вечнозелёные заметки придумал не энди...ТерминалУ nota очень круто организована работа с вкладкамиУ nota очень много крутых фишекУлучшить качество своей жизниУмные заметкиУстановка Gatsby CLIУстановка git на macУстановка Gatsby и Node.js на MacУстановка NodeУстановка инструментов командной строки XcodeФайлы в notaФорма важнее содержанияФормопоклонникЦели ведения умных заметокЦеттелькастенЧасто под образованием понимают обладание...ЧерновикЧитатель превращается в потребителя информацииЧтение для развлеченияЧтениеЧто бы я хотел добавить в notaЭнди матушак