19 резюме с React Conf 2019

React.js
оригинал:19 Takeaways From React Conf 2019
Автор: Энтони Моррис.
Переводчик: Бо Сюань
В целях обеспечения читабельности статьи в этой статье используется вольный перевод.

react-conf-header.png

React Conf⚛️ официально закончился. Много отличных разговоров, персонажей, событий и, конечно же, еды. Я все еще подготавливаю все мероприятие, но что касается этой конференции, то это, безусловно, лучшее мероприятие, на котором я был.

Разработчики обычно сохраняют чувство благоговения перед сообществом. Волонтеры и организаторы конференции проделали невероятную работу, чтобы все, кто посетил конференцию, чувствовали себя желанными гостями. Я был впечатлен их усилиями дать каждому из нас чувство сопричастности. На следующий день будут даже некоторыевнутреннийдеятельность. Представляли ли вы себе нарисованные маленькие портреты на конференции (ниже представьте себе"Вархаммер")? У меня есть это сейчас! Так что всем причастным спасибо!

Этот пост содержит некоторые из моих любимых рецептов из этого React Conf. Каждая тема заслуживает внимания, поэтому я предлагаю вам посмотретьпервый деньа такжеНа следующий деньВидео.我的文章底部为所有演讲中的话题都添加了时间戳。

您可能会对列表中的某些项目感到惊讶。 Я тоже!并非所有内容都和技术相关,但是会有一个贯穿始终的共同线程。

существуетТом ОккиноПосле разговора мне не терпелось погрузиться в свое воображение. Все образы, упомянутые в разговоре, пришли мне в голову. Я понял, что мне очень нравятся инструменты разработчика и интерфейс.

React стремится создать опыт разработчиков, который позволяет нам быть болеелегкийизучать и внедрять более мощные функции, улучшая их за счет ускорения запуска и итерациипроизводительные силы, а также улучшить наши возможности по разработке программного обеспеченияшкала. Эти вещи заставляют меня любить React. Я думаю, что Facebook проделал большую работу.

Какой смысл во всем этом? Ну, проще говоря, это служит пользовательскому опыту. Все, что мы делаем, чтобы помочь пользователям стать лучшеЭффективность работыМы должны стремиться помочь им более элегантно выполнять свою работу. Мы помогаем им пройти путь достижения цели не всегда за закрытыми дверями, а болееРассмотрим с точки зрения пользователя.

Из-за реакцииПопулярностьИ предложил критику. Как сообщество, мы должны быть в состоянии принять критику, а не просто защищать себя. Эльберт Хаббард сказал:«Чтобы избежать критики, ничего не говори, ничего не делай и будь никем».Что React делает и почему, имеет значение. Это, естественно, приведет к спорам, но также позволит технологии продолжать развиваться. Это позволит нашему сообществуСтановиться лучше.

2. Удивительная простота использования, производительность и параллельный режим!

Вы когда-нибудь сталкивались с проблемами фокусировки при использовании React? У меня есть.фокус имеет значениеМного причин. Это помогает людям ориентироваться на странице. Это очень важно для людей, которые не используют мышь. Эта тема снова поднимется позже, но приятно видеть, что команда React позволилафокусдоступный.

Одной из вещей, которая заставила меня больше всего задуматься во время встречи, было выступление. Facebook приходится иметь дело с проблемами производительности, с которыми большинство из нас, вероятно, никогда не столкнется. Но то, что они узнают из этих уроков, также можно использовать для улучшения пользовательского опыта. Скорость загрузки страницы не имеет значения, если производительность низкая.

Примером этого являетсяЧжэн Ючжиупоминается в разговоре.你可能也听说过Suspense

параллельный режим

параллельный режимПозволит React реагировать на низкоприоритетные перерывы в работе, делая приложения React более отзывчивыми. Это делает такие вещи, как пользовательский ввод, более приоритетными, чем такие вещи, как повторный рендеринг списка. React позволяет обновлять состояние нескольких заданий одновременно. Это поможет нам устранить дрожание и слишком частые обновления DOM. Это также позволит нам расставить приоритеты для таких взаимодействий, как зависание и ввод текста. Мы знаем, что пользователи ожидают, что этот контент будет обрабатываться быстро, иначе они будут чувствовать себя вялыми.

Команда реагированияПоделился многими примерами шаблонов параллелизма, предлагаю посмотреть.

3. CSS-in-JS-at-FB

дляFrank YanБыло объявлено, что Facebook создает собственную библиотеку CSS-in-JS, и я был заинтригован. Сначала я подумал, неужели нашей текущей библиотеки недостаточно? Это дает нам возможность узнать больше о некоторых проблемах, с которыми сталкивается Facebook в масштабе, и о творческих способах их решения.

Поддержка CSS может быстро выйти из-под контроля. Давайте посмотрим на следующий пример:

.blue { color: blue; }

.red { color: red; }
// 展示为红色
<span class="red blue">
  Which color will I be?
</span>

В этом примере мы хотим, если текст видит текстblue. Поскольку он стоит вторым в объявлении класса, мы хотим, чтобы он

должен
иметь приоритет. Но это не тот случай..redАранжирован во втором стиле, это будет дано предпочтение красным. Если среди них расположены в разных стилях, порядок, в котором они загружают страницу, будут очень важны.

Хотя этот пример очень"детский", пример также выглядит простым, но может быстро выйти из-под контроля. Facebook стремится решить такие проблемы, как борьба за специфичность, тематику и доступность с помощью новой библиотеки классов.

Некоторые интересные подробности из разговора:

  • Разработчики могут кодировать в пикселях, но их работа может быть скомпилирована в REM.
  • Они обеспечивают безопасность, выполняя проверку типов (отлавливая и исправляя опечатки, обнаруживая и удаляя неиспользуемые стили. Избегая кросс-браузерных ловушек).
  • Покажите ошибки специальных возможностей разработчикам.

accessibility-violation

  • Компоненты имеют стили по умолчанию и могут быть переопределены (включая безопасность типов!)

Атомарный CSS

Каждый класс создается только с одной уникальной парой свойство-значение. Это используется дляОптимизация компонентов

.c0 { color: blue; }
.c1 { color: red; }
.c2 { font-size: 16px; }
//生成的组件(预先优化)

// Generated Component (Pre-Optimized)
const styles = {
  blue: {color: 'c0'},
  default: {color: 'c1', fontSize: 'c2'},
};
function MyComponent(props) {
  return (
    <span className={styles(
      'default',
      props.isBlue && 'blue',
    )}>
      Hello World!
    </span>
  );
}

В этом примере показан атомарный CSS. Он также показывает, как использоватьpropsУстанавливатьspan

// 不再需要样式块
function MyComponent(props) {
  return (
    <span className={styles(
      (props.isBlue ? 'c0 ' : 'c1 ') + 'c2 '
    )}>
      Hello World!
    </span>
  );
}

您是否曾经想过如何使页面感觉更快?早点互动? Конечно, есть!阿什利·沃特金斯(Ashley Watkins)同样做到了。她真的让我在思考如何调整数据获取的方法来改善用户体验。我已经开始对 Relay 感兴趣,但她让这种感觉持续升级。

Поэтапное разделение кода

Как вы можете догадаться, инженеры Facebook усердно работали над тем, чтобы их FMP (First Effective Paint) работал как можно быстрее. Один из способов сделать это — «поэтапное разделение кода».

Используя этот метод, вы можете заблокировать загрузки один раз и доставлять их поэтапно. Например, если вы ссылаетесь на путь Facebook, вы можете разбить его на три этапа.

  • Нагрузка
  • 2. Дисплей

phased-code-splitting

Время до первой осмысленной картинки

Чтобы получить максимальную отдачу от вашего пользовательского опыта, вы должны рассмотретьВремя загрузки выше сгиба. В основном, это когда основной контент отображается на странице. Есть много метрик, которые вы можете просмотреть и измерить, чтобы улучшить время загрузки, но FMP по-прежнему выделяется.

Relay позволяет выполнять потоковый запрос с помощью Graphql. Это позволит вам пометить некоторые данные как критические данные, а другие данные пометить как данные, не являющиеся критическими. Затем вы можете получить наиболее важный контент с сервера и отображать его, получая остальные данные. Используя этот метод, вы можете визуализировать его, когда приедете!

Разделение кода на основе данных

Это меня немного шокировало. Реле мощное, без сомнения. Relay имеет новую функцию, которая позволяет вам расширить критерии запроса, чтобы выразить код компонента, необходимый для отображения определенного типа данных. 🤯 Вы можете поставить кодрассматриваться как данные.当服务器解析您的 GraphQL 查询时,它可以让客户端知道需要下载哪些组件代码,以便更快地获取它!

Выступление Эшли было невероятным, но она уверяла, что все это только начало. Я еще не использовал Relay, но я рад начать его использовать, и я уверен, что вы тоже будете (тем более, что вы узнаете больше о том, что он может делать).

5. Решить проблему голода в мире

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

Tania PapazafeiropoulouНемного подкорректировала тему, чтобы познакомить участников с голодом в мире и классным продуктом, над которым она работала.OLIO. Это помогает людям делиться едой, а не выбрасывать ее, и вы не можете догадаться, что она работает на React.

обнаружено, чтоТреть всей еды выбрасываетсярасстраивает. Важно, что мы используем только25%Еда может решить проблему мирового голода. Эти четкие данные зарабатывают возможным для борьбы с мировым голодом, и приятно слышать, что команда работает над этим.

На этот раз вокруг новых функций React нет ажиотажа, но они делают React еще лучше. React (и React Native) позволил команде Тани быстро создать свой продукт и оказать положительное влияние.

6. Сделайте REST лучше (и безопаснее)

RESTful APIsНе новая горячая концепция. Они были официально определены в 2000 году и с тех пор успешно используются. Сказав это, у REST есть некоторые проблемы.

Facebook решает эти проблемы с помощью GraphQL. GraphQL дает нам более понятное определение данных. Это позволяет клиентам получать только то, что им нужно. Это отличный способ сократить время рендеринга, потому что вам не нужно загружать столько данных!

Tejas KumarХороший обзор различий (пожалуйста, смотритеЕго речь

REST

  • ❌ Нет договорного соглашения

GraphQL

  • ✅ Стандартизированный формат данных
  • ✅ Не догадка игры
  • ✅ Значимые разговоры (определяются пользователями)
  • ✅ Прочный договор

Многие из нас любят GraphQL, но иногда это не предпочтительный API. Теджас и его команда разработалиИнструмент для устранения некоторых ловушек REST. Он включает Swagger и сгенерированный код с использованием спецификации OpenAPI.

Я не верил, что собираюсь сделать именно то, что он сказал, но его речь произвела на меня неизгладимое впечатление. Серьезно,перейти к его речи!

7. Движок React (создание пользовательских рендереров)

Если вы когда-либо демонстрировали код, который вы написали раньше, вы знаете, что он часто дает сбои.Софи АльпертСоздайте средство визуализации React и передайте нам знания, необходимые для этого процесса.

Я не считаю себя экспертом React (о 😅). Я никогда не видел кодовую базу React. Я всегда думал, что это будет вне меня. В процессе я продолжаю изучать и осваивать React, я буду продолжать изучать и, в конечном итоге, углубляться в саму кодовую базу. Когда Софи (Sophie) на этапе React Conf построила свой собственный рендеринг в реальном времени, это не казалось таким тревожным.

Как носитель английского языка, должен признать, что локализация — не первое, о чем я думаю при разработке продукта. К счастью, я знаю об этом и буду относиться к этому более серьезно в будущем.

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

В прошлом году Нат Элисон задал вопрос «Переведен ли React?». Когда она изначально задала вопрос, ответ был отрицательным.

Почему это так важно? Ну, Нат хорошо сказал. Если бы только англоговорящие люди имели доступ к React, сколько людей не смогли бы использовать эти инструменты для разработки удивительных продуктов? Сколько мы потеряем, если позволим только англоговорящим строить наш цифровой мир? Только 20% населения мира говорит по-английски. Если мы не поможем другим использовать React, это будет наша собственная потеря!

is-react-translated-yet

Если вы говорите на двух языках, я надеюсь, что вы тоже можете помочь!

9. Доступный марафон

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

Пробежать марафон 🏃🏻‍♂️ — еще один пример, когда это может быть сложно. По данным RunRepeat, в 2018 году марафон завершили 1 298 725 человек. Они не совсем умеют это делать. Они начинают с малого и усердно работают, чтобы достичь своих целей.

Вот как мы работаем с доступностью. Если вы начинаете с нуля, такой подход устранит чувство перегруженности. Я изучаю новый взгляд на мир разработки программного обеспечения и одну из самых любимых вещей React Conf. · 费恩斯特拉 Бриттани (Brittany Feenstra) — одна из тех, кто помог мне расширить кругозор, о доступности хотелось бы поразмышлять дальше.

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

10. Вам не нужен Redux (верно?)

В 2019 году естьМножество различных способов управления состоянием React(Четноеeasy-peasy).

11. Время путешествовать к 1999 году

Последнее выступление дня заинтересовало меня в названии. Каким было программирование в 1999 году? Мне тогда было девять лет. Некоторые люди начинают программировать в возрасте девяти лет. Я не один из них. 😢

Этот разговор — еще одна тема, которая действительно требует внимания. Ли Байрон обеспечивает прекрасно отполированный драгоценный камень. Он провел нас через период, когда стек PHP и LAMP стал инструментами веб-разработки. Для тех, кто не программировал в 1999 году, он объясняет эволюцию, которая привела Facebook к разработке таких инструментов, как React, GraphQL и Relay. Будет ностальгия по тем, кто кодировал в то время.

Я всегда уважал инженерную работу, проделанную Facebook, но это речь, чтобы все стало яснее правильно. Использование React кажется привилегией, и теперь я знаю источник привилегий. Я был как Ли, который вдохновлял и будет продолжать работать для сообщества.

12. Даже инструменты разработки связаны с UX

На следующий день встреча продолжилась в разработке Брайана Вона. Если вы используете содержимое сборки React, возможно, вы использовали React Dev Tools. Они, несомненно, помогли мне избавиться от собственного хаоса.

React Dev Tools был полностью переписан, в том числе:

  • лучшая производительность
  • Поддержка нового API
  • UX новые функции

Видите ли, даже инструменты разработки ориентированы на отличный UX!

Меня впечатлили изменения, внесенные командой, чтобы помочь незнакомым студентам ознакомиться с проектом. Хотя вы, возможно, никогда не сталкивались с незнакомым кодом, все мы знаем, что даже наш собственный код со временем может показаться незнакомым. Теперь мы можем видеть, как свойства проходят через компоненты, фильтровать дерево компонентов, детально проверять компоненты и использовать хуки с помощью инструмента разработчика. Еще одна вещь, которую я хотел бы видеть, это сдвиг в неизвестности. Эта, казалось бы, простая функция может быстро стать бесценной.

Наряду с общими профилями новые инструменты разработчика облегчают поиск причины. тамподобные инструменты, но теперь мы можем понять ваш рендеринг прямо в инструментах разработчика.

Есть много других замечательных дополнений, которые я рекомендую вам сделать самостоятельно.исследовать их.

13. Подозреваемые данные (Relay Great)

我想我可能要接力 Relay 了。实际上,我很晚开始使用 GraphQL。 в моем

React SuspenseНадежда состоит в том, чтобы позволить нам отображать некоторый пользовательский интерфейс, не дожидаясь, пока весь пользовательский интерфейс будет готов.

Давайте посмотрим на базовый пример компонента, который отображает состояние загрузки (используя Suspense) при выборке данных:

const Composer = (props) => {
  const data = useQuery(graphql`
    query ComposerQuery {
      me {
        photo {
          uri
        }
      }
    }
  `, variables);
  return (
    <div>
      <img src={data.me.photo.uri} />
    </div>
  );
}
const Home = (props) => (
  <Suspense fallback={<Placeholder />}>
    <Composer />
  </Suspense>
);

В этом примере у нас есть компонент Composer, который получает URI изображения профиля, а затем отображает его. Вы можете увидеть это в компоненте Home, где Composer заключен в блок Suspense. Затем, пока данные загружаются, заполнитель будет отображаться. Эту закономерность можно рассматривать как«Получить при рендеринге».

В этом режиме порядок загрузки следующий:

fetch-on-render

Как видите, это позволяет нам с легкостью обрабатывать загрузку данных. Мы можем улучшить взаимодействие с пользователем, используя заполнители или загружая компоненты, такие как Loading.

Вышеупомянутая модель уже приносит много преимуществ и гибкости. Тем не менее, команде Facebook не нравится, что вам нужно рендерить, чтобы выяснить, какие данные нужны компоненту. Для решения этой проблемы стали использовать"Визуализировать при получении данных"Режим.

По существу, для включения«Рендеринг спроса»функциональности, команда Facebook разбила useQuery на две части. Он делится на preloadQuery и usePreloadedQuery. Что именно это означает?

preloadQuery

API извлечет данные и предоставит ссылку на результаты. Он не дает реальных данных.

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

usePreloadedQuery

Этот API получает результат вызова preloadQuery. Фактически, он не выполняет выборку данных. Он смотрит на текущее состояние preloadQuery. Если он готов, он покажет результат. Если он не готов, он будет приостановлен. В случае сбоя запроса может быть выдано сообщение об ошибке.

Что бы ни случилось, usePreloadedQuery никогда не инициирует новую выборку. Это делает его эффективным и предсказуемым.

Вместо использования этих двух API useQuery предоставит следующий порядок загрузки:

render-as-you-fetch

Я настоятельно рекомендую вам послушать, как Джо Савона объясняет концепцию моего резюме выше. Он говорит лучше и глубже. Это одно из моих любимых выступлений, потому что я в восторге от возможностей этой модели и не могу дождаться, чтобы попробовать ее.

14. React — это роман

Она устала.

Ее темп замедлился, когда она приблизилась к кровати на один шаг, ее лицо впервые соприкоснулось с матрасом, тело стало тяжелее.

const Nav = ({ links }) => (
  <nav>
    {
      links.map(link => (
        <Link to={link.to}>{link.name}</Link>
      ))
    }
  </nav>
);
const Header = () => {
  const links = [
    { name: 'Home', to: '/home' },
    { name: 'Settings', to: '/settings' },
  ];
  return (
    <>
      <Nav links={links} />
    </>
  );
}

Кажется, это работает нормально, но что, если мы хотим добавить элемент навигации? Например, кнопка входа.

const links = [
    { name: 'Home', to: '/home' },
    { name: 'Settings', to: '/settings' },
    { name: 'Login', to: '??' },
  ];

Наш компонент Nav не может справиться с этой ситуацией. Мы могли бы легко реализовать способ справиться с этим, но это может легко выйти из-под контроля. Мы можем реорганизовать компонент Nav, чтобы он выглядел так:

const Nav = ({ links }) => (
  <nav>
    {
      links.map(link => {
        return link.to
          ? <Link to={link.to}>{link.name}</Link>
          : <a onClck={link.onClick}>{link.name}</Link>
      })
    }
  </nav>
);

Это будет работать, но сколько крайних случаев мы рассмотрим, прежде чем станет трудно рассуждать о компоненте Nav? Мы можем переписать компонент Header по-другому.

const Header = () => {
  const links = [
    { name: 'Home', to: '/home' },
    { name: 'Settings', to: '/settings' },
    { name: 'Login', to: '??' },
  ];
  return (
    <nav>
      <Link to="/home">Home</link>
      <Link to="/settings">Settings</link>
      <a onClick={onSelectLogin}>Login</a>
    <nav/>
  );
}

Я упростил пример, который Дженн привел в своем выступлении, но я думаю, что это важно. О второй части заголовка легче рассуждать. Даже если бы мы могли повторить это сейчас, абстракция не приносит большой пользы. Если мы хотим добавить компонент Icon к одной из ссылок, нам не нужно иметь дело со всеми угловыми случаями в компоненте Nav, просто добавьте его туда, где мы хотим.

Дженн также процитировала цитату Нила Геймана, которой я должен был поделиться.

Wrabit

Я еще не сделал много анимации. Я вижу будущее, в котором я получу отличный дизайн пользовательского интерфейса от Dribbble (анимация и все такое) и попрактикуюсь в дизайне. Анимация, безусловно, восхитительная часть дизайна порно, но даже в этом случае мы реализовали ее с учетом пользовательского опыта.

Как и большинство разговоров, Алекс Холачек заставил меня думать по-новому. Я люблю взаимодействие UI. Они заставляют меня чувствовать себя теплым и нечетким внутри. Я чувствую себя виноватым за то, что не учитывая всех пользователей, глядя на них.

Как красиво анимационные работы для пользователей Nokia 6? C $ 283.97 от Amazon, я могу позволить себе купить новый iPhone до цены много раз выше. Я думаю, что многие другие люди находятся в одном лагере.

Алекс помог мне вспомнить больше, чтобы думать о средних значениях. Средний телефон, средняя скорость передачи данных. Строительство среднего и высокого класса всегда будет хорошо.

также,event.preventDefault()Также плохо влияет на прокрутку.

16. Повторный опыт

Если вы не уверены, переговоры в этом году очень разнообразны. Разработано Лукой Демаско в сотрудничестве с Заком Рисполи.Вик РедакторЧтобы показать нам итеративный процесс, тем самым поддерживая свежесть.

Wick Editor — это бесплатный инструмент с открытым исходным кодом для создания игр, анимации и всего остального, о чем вы только можете подумать. Пользовательский интерфейс действительно впечатлил меня, когда Лука показал текущую версию. Он выглядит интуитивно понятным и имеет множество функций. Не всегда.

Лука и его друзья достигли того, что они имеют сегодня, благодаря постоянным повторениям. И при этом они не просто повторяют ради повторения. Они перенесли Wick во множество разных сред (школы, библиотеки и т. д.) и сделали интерфейс видимым для многих разных пользователей (новичков, пользователей среднего уровня, молодых и старых). Они использовали лазерно-ориентированный подход и собрали много отзывов, чтобы помочь сделать Wick тем, чем он является сегодня.

Честность процесса вдохновляет меня, когда я думаю о том, как доработать свой продукт. Как начать быстро и намеренно повторять? У меня нет такого опыта, поэтому иногда уверенность может сбить меня с толку, но я с удовольствием берусь за этот процесс. Было приятно видеть, как кто-то вроде Луки делится своим опытом, и я благодарю всех участников конференции за искренний обмен опытом.

17. Сложность простых вещей

вы используетеreact-select? нет?那可能只有你不知道了。

该组件在 GitHub 上拥有超过18000个星标。每周有 150 万次下载。 так много.

react-select.他对开发大规模的流行的开源项目有了深刻的见解。他还展示了简单的事情通常可能非常复杂。

Когда Jed Showreact-select

Государственные расходы – важная тема. Мы должны видеть, куда идут наши налоги, чтобы призвать правительство к ответу.

Лиззи Салита доказывает, что правительственные веб-сайты могут быть эффективными, простыми в использовании и красивыми. когда она демонстрируетUSAspending.govЯ был очень удивлен, когда проводил браузер. сочетайте это сКанадская версияДля сравнения вы получите пример, который может использовать React Re Regruction для улучшения пользовательского опыта.

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

19. Чудо-ориентированное развитие

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

Симуляторы тория позволяют вещам, как

我最喜欢从 Alex 的演讲中脱颖而出(这需要我花一点时间才能完全理解)是奇迹驱动开发的概念。您是否想过技术的可能性?那你有什么能力呢? 🤔

Такие вопросы побуждают нас создавать веселые, приятные и по-настоящему красивые впечатления. Вопросы такого типа позволяют инженерам и компаниям Facebook по всему миру использовать технологии для формирования нашего мира.

Я многому научился у всех, кого встретил на React Conf в этом году. Я так взволнован тем, что могу участвовать, я поражен и взволнован.

Мне не терпится увидеть, какие чудеса заставят меня расти!

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

Я был бы более чем счастлив, если бы вы хотели, чтобы я расширил эти идеи. Протяни руку и дай мне знать!

Наконец, не говоря уже о Девине Линдси. Она дала нам смех, конфеты и мероприятия внутри. Эта встреча не была бы такой же без нее.

отметка времени

Для вашего удобства вот разбивка двухдневной конференции. Смотрите все выступления и следите за спикерами!

первый день

На следующий день