>> [Играет музыка]
>> Нееля MEHTA: Вот он идет.
>> Ну, все, добро пожаловать на веб приложения в будущем с React.
Это CS50.
Меня зовут Нил.
Я ТА для CS50 и студент-второкурсник в Гарвардском колледже и очень, очень
страстный веб-разработчик.
Так что я очень увлекательно говорить с вами сегодня,
ли вы здесь или у себя дома смотреть, о Реагировать, которые, опять же
как я уже сказал, что будущее веб-приложений.
>> Так Реагировать является веб-фреймворк.
И, как я говорил для некоторых людей здесь,
рамки просто набор инструментов вы можете использовать
структурировать и создать свой веб-приложение.
И веб-приложения, опять же, веб-сайты что являются интерактивными, как Facebook,
Twitter.com, Instagram.com, что угодно.
>> Так Facebook является веб-фреймворк который был разработан Facebook
пару лет back-- РЕАКТ.
Это тех пор используется в Facebook на своих мобильных приложениях
и веб-приложение, Instagram.
Хан Академия другой видный рано усыновителя React.
>> Это действительно было получение чрезвычайно популярны.
Если вы когда-либо использовать что-то вроде Угловое или Магистраль, это из того же семейства,
но с тех пор далеко опередить их популярность.
Это горячая новая вещь.
Это действительно, действительно огромен.
>> И так хорошо реагировать не только как веб-фреймворк для построения интерфейсов.
Это хорошо для создания веб-интерфейсов.
Там также вещь Реагировать называется Родной которые
позволяет создавать интерфейсы для Android и прошивкой
и, возможно, других платформ в будущем используя только тот же код JavaScript.
Вы можете использовать тот же самый Код JavaScript для отображения веб-сайтов,
оказывать программы и приложения IOS.
>> Это очень, очень захватывающее время.
Это действительно, действительно здорово возможность.
Это действительно универсальный веб- средство разработки интерфейса,
так что это очень, очень Важно знать.
И, как я говорил людям, раньше, это, мне кажется,
собирается изменить, как мы построить веб-приложений навсегда.
Так что это, может быть, немного гипербола, но я думаю, что это довольно хорошая вещь, чтобы знать.
>> Итак, то, что реагировать?
Реагировать является основой можно использовать для строительства интерфейсов.
Интерфейс, опять же, веб-страница, верно?
Так вот Instagram.com, использования React.
>> Реагировать построен на Идея компонентов.
Компонент является HTML- элемент на стероидах,
так что HTML-элемент, как кнопки.
Это пункт.
Это заголовок, верно?
И Instagram будет использовать их, но это также будет использовать компоненты React.
>> Реагировать компоненты форсированным HTML элементы
которые имеют свое собственное поведение содержащиеся в них.
Так, в качестве примера, мы могли бы время элемент, время компонент,
который будет содержать, как штамп времени, вы знаете,
компонент, который Профиль будет содержать изображение профиля
и имя человека.
Это может быть как счетчик, который может рассчитывать как количество подобных,
и если вы щелкните по ней, она будет увеличить число подобных.
Компонент просто куча HTML код, который
имеет некоторую функциональность завернутые внутрь него.
Так что это, как HTML элемент на стероидах, как я уже сказал раньше.
Вы можете взять эти компоненты, и вы можете положить их вместе
чтобы новые компоненты, в этот случай, должность компонент,
который содержит все эти вещи.
Это будет содержать время, профиля, LikeCounter, возможно комментарий
и, возможно, само изображение.
И так веб-приложения только построен, принимая компоненты и положить их вместе.
Непрерывно подают Instagram является не более, чем куча сообщений одно за другим,
каждый пост содержит как время, Профиль, LikeCounter, и так далее.
Это своего рода, как строить дом.
Вы не строить дом сверху вниз.
Вы берете components-- вас принять как ванная комната.
Вы берете bedroom-- вы придерживаетесь их вместе, и у вас есть новый компонент.
У вас есть новая часть дома.
>> Так Реагировать это все построено вокруг эта идея компонентов,
интерактивные, которые являются декларативными.
Как вы только что сказали, что такое профиль, и это делает его.
Они компонуемы.
Вы можете взять время и профиль, поставить их вместе, сделать что-то лучше.
И они многоразовые, так что если вы есть исходный код на должность,
можно встраивать что угодно.
>> Вы можете вставлять Instagram что на вашем собственном сайте.
Вы можете вставлять в Facebook, например, тех пор, пока он использует React а.
Так компоненты действительно, действительно, действительно мощные строительные блоки Сети
которые могут быть использованы в любом месте и поставить вместе, чтобы сделать новые строительные блоки.
Это очень, очень Обзор высокого уровня.
Так, опять же, если у вас есть какие-либо вопросы в любой точке
о философии реактора, в кодирование, чтобы остановить меня, и дайте мне знать.
>> ОК, так что реагируют прохладно, потому что это имеет иной взгляд
на то, как вы строите веб-приложений.
Вы, наверное, слышали о MVC, а Модель управлять в CS50 или все
другой зондирования классы вы используете.
И большинство этих рамочных структур построен вокруг идеи MVC.
Реагировать нет.
Реагировать построен вокруг идеи однонаправленного потока данных
как видно по этой карте или графике здесь.
>> В принципе, у вас есть источник данных.
А источник данных будет решать как выложить определенные компоненты.
И компоненты потом, когда они меняются,
они скажут Источник данных, чтобы изменить.
>> Для использования Instagram Например, вы могли бы
список почтовых объектов, таких как в базе данных или что-то.
Это данных.
А потом наши почтовые компоненты будет, что данные,
и использовать эти данные, чтобы сделать вещь на экране.
Это то, что стрелка от данных к компонент,
а затем используется тот же данные оказывать кучу компонентов.
>> В Facebook Messenger, для Пример, который является Реагировать,
Вы могли бы иметь список Сообщения в качестве источника данных.
И, что бы сделать не только список сообщений
но также список друзей у вас есть.
У вас есть непрочитанных.
Может быть, также оказывают самое Facebook это в нижней части Facebook.com.
То же самое данных является единственным источником истины
и что вызывает много компоненты для визуализации.
И всякий раз, когда один из тех, Компоненты изменяется,
она идет назад и изменения источника данных.
>> Вы отправляете сообщение, верно?
Это изменяет источник данных.
Вы читать ваши сообщения, так что вы установите непрочитанных 0.
Это изменяет источник данных.
И заметьте, что все эти одного стрелка возвращаясь к тем же данным
Источник, так что вы знаете, учитывая определенный набор данных,
вы точно знаете, что страница будет выглядеть.
Это детерминированным.
Вы знаете, приведенные определенные данные, то, что страница будет выглядеть.
Вы можете предсказать, как она собирается вести себя и как идут дела
работать, когда они вместе взятые.
>> И если я был миллион компоненты здесь, было бы вести себя так же, верно?
Вы бы не любая странные взаимосвязи.
Один данные оказали миллион компонентов.
Миллион компоненты могут вернуться назад и отредактировать данные.
И таким образом, это очень приятно.
Мы строим компонуемы, легко масштабируемых веб-приложений.
>> У вас есть один источник данных, источник истины.
Это говорит ваши компоненты как выложить страницу,
и компоненты обработки взаимодействия.
И если они хотят изменить вещи, просто вернуться
и скажите источник данных для изменения.
Сделайте чувство?
Так Реагировать это все о понимании как построить компонент
и как сделать свой компонент взаимодействовать с внешним миром.
>> Создание компонента взаимодействуют с внешним миром
использует другую технологию Поток называется, что
является основой, которая добавил сверху React.
Мы не будем говорить о том, что.
Мы собираемся говорить о более, учитывая Данные, как вы можете сделать компонент?
>> И так реагировать действительно здорово, потому что вы можете использовать его с любым задней части вы хотите.
Если у вас есть как задний конец Python, если ваш Python может выплюнуть некоторые данные,
Реагировать может сделать его.
Если вы нет выхода JS данных, реагировать делает его.
Рубин рельсам с Данные, Реагировать делает его.
>> Так Реагировать в основном веб- view-- передний конец с компонентами
для любого источника данных вообще.
И так происходит из источника данных реагировать компоненты довольно легко.
Переход в другую сторону немного сложнее.
Это использует поток как я уже говорил раньше.
Мы не будем вдаваться в это.
Мы сосредоточимся больше на Данные к компонентной стороне.
Таким образом, вы можете сделать прохладно, веселые веб-приложений.
Это не повлияет на внешний мир сейчас, но это уже другая история.
>> ОК, так что если вы были здесь для моего последнего семинара
Вы будете знать, что весь код для сегодняшняя беседа будет по этому адресу
здесь, извините, этот адрес здесь.
И в основном мы собираемся пойти через четыре этапа, может быть, пять,
вероятно, не пять.
Мы будем двигаться через четыре этапа строительства образец Реагировать приложение.
И так весь исходный код для каждого шага на пути
будет прямо здесь, так что если вы следуете дома,
не стесняйтесь, чтобы просмотреть этот код.
Если вы следуете здесь, мы будем показывать его на экране,
так что не волнуйтесь об этом.
Но если вы находитесь дома, чувствуют себя бесплатно посетить этот веб-сайт.
И, да, вы должны быть в состоянии получить весь код, когда-либо нужно здесь.
Так что это хороший шпаргалка а также для ваших будущих приключениях с React.
Круто, так что если все, кто здесь, и даже если вы находитесь дома,
подтянуть этот сайт, is.gd/cs50react, нет капитала, нет подчеркивания, нет ничего.
>> Вы увидите страницу, которая выглядит немного как это.
Это то, что называется CodePen.
CodePen является совместным среда кодирования
с которой я могу написать код здесь, и он будет автоматически отправлен к вам.
И таким образом, я могу написать код.
Я могу запустить код здесь.
>> Для example-- а если reloads-- см, Я бегу код JavaScript на странице
прямо здесь, и это автоматически сделать веб-страницу
с этим JavaScript кода.
И так это способ для нас, чтобы попробовать код
очень быстро, без использования наше удостоверение или использовать наш локальный компьютер
или что-то.
Это очень быстрый способ для вас, чтобы макет и проверить различные виды кода.
>> Так что я собираюсь брать Пример кода, поставив его здесь.
Мы будем работать через него.
И если вы дома, вы может осуществить это, а также.
И я уже установлен Реагировать здесь, так что вы можете просто
написать свой собственный код здесь, и попробуйте его как свой собственный игровой площадке.
>> Да, если все в открыть эту ссылку здесь.
Пожалуйста, дайте мне большой палец один раз он у вас открыты.
Прохладный, прохладно прохладно.
Там ничего нет сейчас, но мы будем менять, что очень скоро.
>> ОК, так что это реагировать JavaScript библиотека, и, таким образом,
требует знания JavaScript, который является язык веб-программирования.
И он используется для других вещей сейчас тоже но в первую очередь веб-разработки
язык, так что если вы не знакомы с что, читать сайт под названием JSforCats.com.
Это замечательно.
Вы можете узнать JavaScript Через полчаса.
Это невероятно.
>> Так дайте ему почитать.
Мы также много HTML здесь, потому что мы проектирования веб-страниц, конечно.
Так что, если вы не знакомы с HTML, проверить HTMLdog.com.
Я думаю, что изучение Реагировать является миллион раз легче, если вы уже
знаете строительные блоки.
Если у вас есть компоненты, это легко сделать больше компонент.
Это Реагировать язык для вас.
>> Так идти вперед и дать эти вещи, читать.
Пауза видео.
Дайте ему читать, если вы дома, если вы не
знакомы с HTML или JavaScript
Итак, то, что мы собираемся сделать, мы собираемся сделать
очень простой флэш приложение, с помощью React.
Мы собираемся, чтобы иметь флэш-карту.
Вы можете перевернуть карту и обратно.
И мы будем также список все карты, которые у нас есть,
и если мы чувствуем себя амбициозны, мы могли бы быть
возможность переключения между автомобили, нажав на них.
>> Но это, голыми кости, очень простой Реагировать приложение.
И так это на самом деле не просто реализовать,
но мы собираемся показать, что, если у вас это, это очень, очень легко расширять,
если другие люди вам помочь в этом.
Итак, мы собираемся пройти через четыре этапа начиная с нуля, чтобы построить это.
>> Итак, четыре шага, мы будем начать с первого шага.
Первым шагом будет строить свой первый компонент.
Как я уже говорил раньше, составляющая в Реагировать это просто HTML-элемент на стероидах.
Он определяет HTML и некоторые поведение, и
будет указать, как люди может взаимодействовать с ним хау
он будет иметь внутреннее состояние.
Как кнопка будет знать, например, сколько раз это была нажата, например,
и он будет знать, как заложить сам себя.
>> Так что давайте идти вперед и строить наше Первый компонент, используя JavaScript.
Так что, если синтаксис выглядит странно, это потому, что это вроде есть.
Так, опять же, мы собираемся сделать переменную
Приложение с помощью пусть ключевое слово, что делает переменную,
пусть App равный React.createClass.
>> Реагировать библиотека и имеет функцию Создать класса.
И эта функция немного кода, который вам
можно использовать для создания нового тип Реагировать компонент.
И так React.createClass делает компонент,
и этот компонент будет быть в состоянии сделать вещи.
Главное это может сделать, это сделать то, оказывают как функция.
>> Опять же, если этот показатель не является очевидным для Вы, я рекомендую вам пойти на JS для кошек
и проверить его.
Разве что увеличено достаточно хорошо?
Круто.
>> Таким образом, каждый компонент должен иметь функцию визуализации.
Функция визуализации говорит, что я печатать на экране?
Но компонент бесполезен, если он не
Знайте, что печатать на экране, так что Вы должны иметь оказание функцию.
>> Таким образом, в самое сделать, вы просто нужно вернуться немного HTML.
И то, что это круто, что есть то, что называется
JSX, которая является продолжением JavaScript, который используется реагируют.
Это позволит Вам написать HTML внутри Вашего JavaScript, который
Звучит немного странно, когда сначала думать об этом,
но он делает много смысла позже.
Таким образом, мы можем сделать это.
Если вы знакомы с HTML, я знаю, у нас есть DIV с общего назначения
контейнер для вещей.
Мы можем вернуть DIV, а внутри это DIV, мы можем положить вещи.
>> Так что давайте говорить, что мы хотим, чтобы сделать просто прямо-вверх флэш сейчас.
Флэш, я бы сказал, будет иметь вопрос и ответ.
Так внутри этого DIV, давайте распечатать пункт
что говорит question-- Что такое окончательный ответ на жизнь, вселенная?
И тогда ответ будет, конечно, 42.
>> Это не придумать хорошо на всех.
Да, так в основном вы действительно можете написать HTML внутри вашей JavaScript.
И это будет распечатать на экран.
Так давайте попробуем это.
>> Таким образом, мы имеем компонент.
Мы должны сказать Реагировать поставить компонент на экране
так React.render, так заметите, что мы лечения приложение, как и любой другой элемент.
Мы пишем это, поскольку это был элемент HTML.
Как вместо того чтобы сказать, как IMG для изображения или р для пункта,
Вы пишете приложение, так это приложение относиться как к HTML элемента.
Как я уже говорил раньше, это элемент на стероидах.
>> Таким образом, вы сделать приложение, и вы дать ему место, чтобы поместить его.
И это, как вы можете сказать ему, где его поставить.
Я создал простой DIV на страница вызывается с ID страницы,
и вот где элемент собирается идти.
>> И мы не собираемся работать с HTML.
В основном это происходит, чтобы получить положить внутрь этого элемента страницы
что у нас есть на экране.
Так он работает этот код, и это привлекает это что на экране, так что здесь мы.
Мы сделали наш первый Реагировать компонент.
>> Так же, как повторение, мы аккуратно сделал новый тип компонента, верно?
Это то, что React.createClass.
И в этом компоненте, мы сказал ему, что он должен делать.
Всякий раз, когда этот компонент является напечатать на экране,
это выведет DIV с два пункта в этом.
>> И то, что мы сделали, мы сделали новое приложение используя обозначения уголка приложение.
Мы сказали это, чтобы положить его внутри элемента страницы.
И так, что я сделал, это создал новое приложение из этого шаблона.
И тогда я сказал это, чтобы сделать это.
Так сказал, хорошо, приложение, что я должен распечатать?
App говорит, перейдите распечатать DIV с двумя пунктами внутри него.
И вуаля, есть наша DIV с два абзаца внутри него.
Сделайте чувство до сих пор?
>> Так, опять же, вся проблема Реагировать просто зная, как сделать компоненты.
Как сделать компоненты работают вместе.
Теперь, когда мы сделали наш первый Компонент, давайте вернемся
и сделать настраиваемые компоненты.
Таким образом, вы знаете, как в HTML вы может дать свои кнопки классы?
Вы можете дать вашим якоря в HREF.
Вы можете дать вашим входы типа, верно?
Вы можете дать больше обычай свойства на все ваши элементов
чтобы сделать его более интересным.
И мы на самом деле можем сделать точно такая же вещь.
>> Так что давайте говорить, что мы хотим, чтобы наши Приложение идти оказать любую карту.
Сейчас мы просто оказана жестко запрограммированный карту.
Мы знаем, что есть только один карта может сделать, так что мы
собираюсь попробовать и изменить это сейчас так что мы можем просто дать ему некоторое карту.
Это будет распечатать карту.
>> Вы должны попробовать и сделать свой компоненты очень общего назначения.
Так что это, как я мог отправить это мой друг, и быть, как
все флэш у вас есть, просто кормить его в здесь,
и он будет делать это сам по себе.
Вы можете поставить другой вещи в вашей собственной приложении.
>> Но сначала, давайте разберем это на две составляющие,
но мы хотим, чтобы отделить карты печать часть из фактического приложение части.
Итак, что мы можем сделать, это мы можете изменить это с App
чтобы CardView, просто Новое название для приложения,
и мы можем сделать новый компонент, называемый приложение,
не путать со старым App.
Мы получили createClass, и как в HTML,
Вы можете гнездо Реагировать компоненты внутри друг друга.
>> Таким образом, в этом оказать функции, Функция возврата CardView,
и это точно такая же вещь.
Узнайте, почему это же самое?
Вместо оказания только приложение, которое имеет DIV и спаривание внутри него,
приложение делает CardView, и CardView оказывает DIV и пункт.
Так что это наш первый пример гнездования элементы внутри друг от друга.
Имеет ли это смысл?
Так, опять же, у нас есть элемент CardView.
У нас есть приложение элементы что это больше, чем.
>> Итак, мы хотим, чтобы наши CardView-- если вы дать хороший CardView определенное карты,
это будет распечатать для вас, верно?
Итак, сначала мы должны сделать карту, так давайте сделаем объект карты.
Итак, давайте мою карточку equal-- если вы все знакомы,
это просто обозначение решений объект в JavaScript.
Это вроде как структуры в C, поэтому мы сделали карту,
и теперь мы можем перейти эту карту как свойство или как атрибут в HTML
терминология наше приложение.
Таким образом, мы можем сделать это, приложение карта равна myCard.
>> Вы знаете, как на входе, вы Тип входного равна текст или кнопку
Класс равна BTN для начальной загрузки ,?
Та же самая идея, приложение карты equals-- у вас есть фигурные скобки here--
App карта равна myCard, так что это говорит, что мы должны этот объект карты.
Я собираюсь пройти его как свойство компонента приложений.
И это приложение будет компонент иметь доступ к его и сделать
интересный материал с этим.
>> Так наше приложение будет учитывая карту, так что сейчас,
давайте приложение просто дать карта с CardView
потому что, как сама приложение не будет знать, что с ним делать,
так что мы просто передать его CardView.
Таким образом, мы передайте ему Точно так же, карты равен,
и так каждый компонент может получить доступ к вещи, которые были даны ему.
Они могут получить доступ к свойствам которые были даны на него
используя этот синтаксис, this.props.card.
>> Так что здесь происходит, у вас есть объект myCard.
Вы передать его в приложение с помощью App карту равна myCard.
Этот объект карта выдается в приложение.
Приложение может получить к нему доступ а this.props.card.
Это вроде как изображения знает, что это источник.
>> Это приложение знает, что это карта есть, и это может сделать вещи с ним.
Это можно сделать расчеты.
Это может принимать решения, основанные отходящими от него.
>> В настоящее время, я собираюсь пройти this.props.card на CardView.
Сделайте чувство до сих пор?
Это сделает больше смысла в настоящее время.
>> ОК, так что теперь мы находимся в CardView.
Наша CardView, учитывая карту, должен распечатать его вопрос и ответ.
Сейчас мы просто распечатать некоторые жестко закодированные вопросы и ответы.
Мы должны выяснить out-- мы должны просить карту, они дали нам
что вопрос и ответ, и затем распечатать это на экран.
>> Таким образом, мы можем сделать это здесь.
В оказывать begin-- сначала сделать равными.
Итак, что мы делаем здесь мы знаем, что карты даны нам в собственность,
правильно?
Это дало нам как вход.
Как это почти как Аргументы функции.
Карточка является аргументом практически по сей CardView.
>> Мы извлечь, что и положить его в переменной вопрос.
Убедитесь, что ответ пошел к переменной ответа.
Сообщает о том, карты, чтобы ответить.
И теперь у нас есть эти, вместо печати, что текст,
мы собираемся, чтобы распечатать все, что они дали нам.
>> Так что это stuff-- так что мы собираемся потушить вопрос ответ.
Давайте посмотрим, если это работает.
Круто, так что давайте шаг через него еще раз просто чтобы быть уверенным.
>> Так что моя карта является объектом карты, и мы дают эту карту в приложении.
И приложение будет взять карта и дать его в CardView.
И это говорит CardView, если вы дать мне любой объект флэш,
Я распечатать его вопрос и ответ, правильно?
>> Так что я мог сделать, это я могу отправить этот код, первый
как 10 линий моего кода, к моему другу.
Он мог вставлять его в его собственное приложение.
И до тех пор, как он сделал то же самое, как CardView карты равен это,
тех пор, как он создал CardView и дал ему нужную информацию,
он мог бы оказать свою карточку.
И поэтому этот путь, это действительно хороший способ для вас, чтобы построить
компоненты, которые используют друг друга, верно?
Эта карта, я мог опубликовать это CardView в Интернете,
и люди будут иметь возможность использовать его.
Поэтому в основном, это как один из Стандартные функции в библиотеке C.
>> Это функция, где кто-то написал его.
Вы даете определенную вход.
Это будет производить определенное выход.
Вы не волнует, как она работает внутри.
Пока вы даете ему право вход, это будет сделать правильный вывод.
>> И компонент может быть подумал о таким же образом.
Это, как CardView библиотечная функция.
Если вы даете ему некоторое карту как свойство, то это
распечатать содержимое этой карты.
Как если бы я изменить свою карту вместо этого, как то, что 5 плюс 37,
она обновит соответственно.
Так, просто изменив вход, он получает определенный вывод.
Таким образом, вы можете думать компонентов почти как функции на этом пути, которые
Вы можете поместить вместе.
Вы вход, как этот CardView как вход, вы получите выход.
В этом случае, выход есть HTML.
Сделайте чувство до сих пор?
Прохладный, так что опять, свойства как вы можете передать информацию
в и из компонентов.
>> Итак, давайте сделаем это вещь интерактивным.
Сейчас это скучно.
Что [неразборчиво]?
Вы можете распечатать некоторые из, но это все, что можно сделать.
>> Итак, давайте вернемся к старый вопрос только сейчас.
Итак, теперь эти компоненты скучно, потому что они все делают,
они получают вход.
Они делают выход, верно?
Это скучно.
Мы хотим, чтобы наши Компоненты, чтобы иметь возможность иметь
своего рода внутреннее состояние, как что-то вспомнить.
>> Для флэш для Например, какое государство
может вы хотите, чтобы запомнить на флэш?
Что временный статус может вы хотите, чтобы помнить
для флэш в флэш приложение?
АУДИТОРИЯ: Если это было отражено?
Нееля MEHTA: Да, верно.
Таким образом, вы, возможно, захотите, чтобы держать трек вы лицом вверх или
Вы лицом вниз на карту.
На Facebook, например, вы бы хочу вспомнить, где в ленте новостей
ты или как кто профиль Вы делаете прямо сейчас.
>> На Messenger, как то, что текст, который вы введите в поле ввода, верно?
Если вы обновите страницу, она уходит.
Но вы на самом деле не волнует.
Это просто временное.
Да?
>> АУДИТОРИЯ: [неразборчиво]
Нееля MEHTA: Как вспышка карта, как вы можете видеть
сторона вопрос или сбоку ответ?
>> АУДИТОРИЯ: ОК.
>> Нееля MEHTA: Как и двусторонний флэш-карту, верно?
Да, так что вы хотите, чтобы есть эта идея в настоящее время
У меня есть свойства, которые, как входы, но государство, которое является временным, э-э,
где вы находитесь на странице, верно?
Опять же, я сказал в Facebook Посланник, у меня есть, как человек, который
Вы просматриваете Facebook или кто профиль, верно?
>> Это только временно.
Важно, чтобы показать пользователю то, что происходит, но обновите страницу.
Это действительно не имеет значения.
Так что это временное состояние, так что мы все это государство.
>> Так, опять же, есть государство и реквизит.
Реквизит является ввод учитывая из источника данных.
Государство, как по умолчанию.
Это просто, как вещи, которые делает вещь интерактивным.
>> Таким образом, в нашем CardView-- давайте наш CardView-- так что было приятно.
То, что мы собираемся сделать здесь, мы собираемся коснуться CardView и только CardView.
И так мой друг, который получил это, они не заметите никакой разницы.
Они не придется менять любой из их собственного кода,
но они увидеть их CardView получил новоиспеченным до.
Это хороший часть о компонентах.
>> Итак, в нашем CardView, давайте попробуем отслеживать ли мы постепенно до
или лицом вниз.
В Реагировать мы делаем это сначала задания начального состояния.
Где карта начать?
>> Так что функция под названием getInitialState функционировать, и мы возвращаем объект.
Этот объект содержит некоторое состояние, и состояние это просто пара ключ-значение.
Как и в наставлять вас есть ключ и Значение, вы должны, как зовут строка.
>> В этом случае, скажем, фронт правда.
Это говорит, что у нас есть государство.
Одним из компонентов государства является атрибутом называется передней.
[Неразборчиво], так что по умолчанию, мы в передней части карты,
и мы можем изменить это как мы флип карты.
Сделайте чувство?
>> Итак, в визуализации, прямо сейчас, мы показывая вопрос и ответ.
Теперь то, что мы должны сделать, является показать вопрос
если мы на лицевой стороне карты, так ответ на обратной стороне карты.
Вот почему вы все делают карта интерактивная.
Так давайте попробуем и это здесь.
Ну, во-первых просто сделать переменную.
Мы можем попросить Теперь this.state.front.
Мы обращаемся к констатировать же мы реквизит доступа, так this.state.front.
>> Если мы спереди, то текст это this.props.card.question.
Если мы на передней части карта, мы собираемся, чтобы попытаться захватить и
вопрос с карты.
В противном случае, если мы на спине карты, что мы делаем?
>> Аудитория: ответ?
>> Нееля MEHTA: Да, так текст равна this.props.card.answer.
Но если вы заметили, мы используем государство, чтобы принять решение
Потому что сейчас компонента будет отличаться
основаны от, как они взаимодействуют с ним.
Таким образом, вместо распечатки этого, мы просто распечатать текст.
Круто, так что теперь, как видите, мы видим только вопрос.
И если я изменить состояние здесь вручную чтобы фронт ложного мы получаем 42 назад.
>> Так, опять же, этот компонент имеет свое собственное государство.
Как кнопка, знает ли это была нажата или нет,
эта вещь знает, что на передние или на спине.
По умолчанию, это на фронте.
И потом, если он находится на фронте, мы распечатать этот вопрос.
Если это на спине, мы будем распечатать ответ.
Так, опять же, информация учитывая то же самое.
Это просто выглядит иначе на основе, как вы программируете его.
Так, например, Facebook Messenger, даже если вы получите тот же источник данных,
это может выглядеть по-разному потому что государство отличается.
Вы смотрите на Сообщение разных человека.
>> ОК, так что это все хорошо и хорошо, но теперь, что на самом деле
делают нас в состоянии изменить, будь наша карта спереди или сзади.
Мы можем сделать это, добавив флип Кнопка, кнопка на карту, что
щелкнет карту, если это [неразборчиво].
Так давайте добавим кнопку здесь, это Кнопка и эта кнопка будет сказать, флип.
>> И так сейчас, это ничего не делать.
Это просто выглядит красиво.
Что мы можем сделать, это мы можем добавить щелчок обработчик, OnClick равна this.flip,
и мы определим флип позже.
Но в принципе, OnClick это функция, которая
вызывается, когда пользователь нажимает ее.
>> Таким образом, кнопка знать когда это была нажата.
Пошел он был щелкнули, он будет перевернуть карты.
Это своего рода, как ваши доставка пиццы.
Ты как, все в порядке, когда кто-то называет меня, я буду поставлять пиццу, верно?
>> Вы регистрируете этот приемник.
Вы прислушайтесь к событию.
Вы дозвонились, и когда Событие происходит, вы что-то.
Вы пиццу.
В этом случае, когда вы нажал, вы перевернуть карты.
>> И поэтому мы должны определить функция, которая будет перевернуть карты,
таким образом, мы напишем это право здесь, флип функции.
И так, что вы думаете, флип будет делать?
Опять же, это вызывается при мы нажмите кнопку флип.
Что функция сальто делать?
>> АУДИТОРИЯ: Изменить this.state.front от истинного на ложное, ложное к истине.
>> Нееля MEHTA: Да, так взять все, что this.front is-- передняя государство.
Возьмите переднюю состояние, если это правда, сделать это ложь.
Если оно ложно, сделать это правда, верно?
Так давайте попробуем это.
>> Вы не можете изменить состояние просто делать this.state.
Вы не можете сделать это.
Вы не можете этого сделать.
Вы должны использовать функцию называется this.setState.
>> Таким образом, вы можете сказать, this.setState передняя толстой кишки, где это, опять же, восклицание
Точка означает обратное.
Я думаю, если это. state.front Правда, это будет превратить ложь.
Таким образом, мы установить состояние от истинного на ложное.
Если оно ложно, мы будем установить его ложного на истинное.
>> Просто обратите внимание, что мы устанавливаем и получить немного по-разному, и поэтому давайте попробуем это.
Бада Бинг, посмотрите на это.
Кнопка флип теперь будет переключить спереди назад государством.
>> И так вот где вы видите немного магии React.
Как мы никогда не говорили это, чтобы это вновь вынести.
Мы никогда не говорили, что это перерисовать ничего.
Если вы делаете это без Реагировать, вы бы
уже, целью которых любят, когда их флип кнопка нажата,
Вы должны были бы сказать ему, чтобы вручную повторно вынести, не так ли?
>> Реагировать на самом деле прохладно, что если вы дать ему определенное состояние и свойства,
она всегда будет оказывать точно такая же вещь.
И поэтому, когда мы когда-либо мы меняем состояние и свойства,
реагировать просто повторно делает все это.
Он знает, что есть точное соответствие
между государством и параметра и HTML.
Поэтому, когда любой из этих изменения по через включенном состоянии,
она будет меняться, как заработная плата повторно вынесено.
И так в основном, как реагировать ждет вас, чтобы измениться.
>> Всякий раз, когда кое-что меняет, это будет повторно вынести всю страницу.
И если это звучит неэффективно, это потому, что это было бы,
но реагировать использует вещь называется Shadow DOM.
Вместо того чтобы рисовать страницу напрямую, это держит виртуальный HTML дерево в памяти.
>> Вы знаете, HTML, как дерево, как иерархическую структуру данных.
Она хранит поддельные дерево в памяти, и всякий раз, когда вы обновите страницу,
это будет сделать еще один фальшивый дерево, и он будет вычислить
то, что изменить его нужно сделать Страница сделать два дерева равны.
Поэтому в основном, это практически Re-оказывает много.
А потом только хотел меняется страница маленьких ухищрений при необходимости,
так что это очень, очень, очень эффективным.
>> Так в основном Реагировать будет когда вы что-то изменить,
это будет повторно отобразить страницу виртуально.
Это будет выяснить, что мне нужно, чтобы изменить, чтобы сделать реальный страница отражают
виртуальный страница, и он будет делать это.
Это виртуальный ДОМ.
Это один из крупнейших особенности React.
>> Имеет ли это смысл?
Любые вопросы?
Да?
>> АУДИТОРИЯ: Как сравнить еще для MVC
что мы говорили о Перед как ресурсов.
>> Нееля MEHTA: Да, вопрос как она соотносится с MVC?
Вы спросили о ресурсах.
Ну, давайте поговорим о том, как он функционирует.
>> В MVC, вы обновить модель.
В этом случае мы имеем модель карты.
Вид бы иметь флип кнопку, и контроль
будет иметь функцию Flip.
Таким образом, вид будет рассказать Контроллер перевернуть сальто.
Флип бы рассказать Модель изменить, верно?
>> И поэтому, когда вы делаете MVC, вам слушать модель, чтобы изменить,
и вы повторно вынести мнение соответственно.
Или вы просто должны любить есть контроллер.
Подождите, модель изменить, а затем выбирать часть как вещь
изменить.
Здесь мы имеем одно, но в большом приложении,
Вы должны помнить, что нравится изменение в каждом одном месте,
так что это немного раздражает.
И так приятно Реагировать потому что он имеет Shadow Dom.
Это может позволить себе только переписать всю вещь.
Вы не должны выборочно как угадать, что нужно обновить.
>> На Facebook, если вам нравится получить новое сообщение, в MVC,
вам придется запомнить, ОК, изменить то, что
в верхней части страница, значок сообщения.
Также поп новое окно в нижней части.
Также сделать новую вещь в этом окне.
Кроме того, играть звук.
>> Это много вещей выходя при этом.
И так, если вы не есть тень Dom, вы бы
должны сделать это вручную, потому что Вы не можете избавиться от всей страницы.
Вы не можете позволить себе, так что вы должны изменить каждую вещь вручную,
что действительно раздражает в MVC.
>> Поэтому для того, чтобы быть бережливый, они избирательно
обновить страницу, которая эффективность, но и раздражает.
В Реагировать, из-за тени Дом, вы получаете обе вещи бесплатно.
Это эффективно, потому что Теневого Dom.
Узким местом обновляет страницу.
Это не делает манипуляцию дерево.
Вы получаете эффективность.
Вы также получаете удобство использования, потому что если вы просто переписать всю страницу,
но вы просто знаю, все в порядке, то, будут на странице где-нибудь.
Это может быть в другом месте, но это будет на странице, верно?
Таким образом, вы просто повторно вынесено вся вещь практически,
и вы могли бы сделать пару изменения в самой странице.
>> Так, опять же, в MVC вас придется выбирать
между простотой использования и эффективности, и реагировать, вы получаете обоих.
Так что лучше.
Сделайте чувство?
Твердое вещество.
>> Итак, давайте посмотрим, давайте поговорим немного о шаге 4,
как мы можем вставлять компоненты.
Итак, мы имеем это сейчас.
У нас есть немного прохладной кнопку.
Мы можем перевернуть его обратно и вперед, и это все, что он делает.
Скажем, мы хотим, чтобы есть еще один компонент.
Скажем, наша флэш приложение должно содержать список всех карт
что у вас есть, так что означает, что мы должны иметь другой компонент.
Ну, может быть, назвать ее в виде списка.
Давайте сделаем вид, что лист сосуществует с CardView,
и эта точка зрения перечень и CardView понравится работать вместе.
И вы можете комбинировать их чтобы наше приложение для вас.
>> Итак, сначала давайте сделаем еще пару карт правильно.
Давайте говорить, какие карты?
И только поэтому я не придется утомлять вас набрав его,
Я просто хочу, чтобы скопировать его отсюда.
И поэтому я буду не дать ему только одну карту.
Я собираюсь дать ему массив карт.
Поэтому вначале приложения сломает сейчас.
Ладно, так что мы собираемся сделать это возможность работать с несколькими картами.
Итак, сначала мы собираемся дать его, не только одна карта, но массив карт,
как список карт.
И в этом случае, у нас есть три из них.
>> Ладно, так так приложение собирается получить список карт,
и это будет решить, какой один, чтобы показать на CardView.
CardView может только оказать одну карту, но приложение
получает список всех карт, верно?
>> Итак, когда вы выяснить одну карта, чтобы дать CardView,
как бы вы думаю, вы могли бы принять решение о том, какие карты
показывать?
Чтобы дать вам подсказку, это временно Вы будете просматривать определенное карту.
Если вы обновите страницу, вы будете просто вернуться к первой карте.
Это нормально, потому что это временно.
Какую технику мы могли бы использовать?
>> АУДИТОРИЯ: Вы могли бы сделать переменную так же, как вы были фронт.
Это правда, ты мог есть текущая карта равна 1?
>> Нееля MEHTA: Да, поэтому мы хотят иметь государство, верно?
Вы должны использовать состояние в Компонент, чтобы выяснить,
какая карта мы хотим получить.
Как у нас есть список все карты, мы будем
использовать состояние, чтобы выяснить, один из первой карты,
Вторая карта, третья карта, и так далее.
>> Так что приложение, таким образом приложение получит имеют функцию getInitialState,
getInitialState функция возврата.
И мы просто сказать activeIndex 0.
Так что теперь наше приложение имеет свой собственный состояние.
>> И вот теперь на рендер, чтобы выяснить, карта, давайте просто пойти в массив
и захватить вещь в этом индексе.
Выберите карты равных this.props.cards this.state.activeIndex.
Итак, как вы видите здесь, реквизит и государство фактически работать вместе.
Так что теперь у нас есть activeCard, мы будем называть его activeCard,
и давайте посмотрим, если это работает.
[Неразборчиво]
>> О, это было текст ошибки.
Ах.
>> Круто, да, так что теперь мы вернулись туда, где мы были раньше, не так ли?
Все та же старая программа, кроме Теперь мы можем поддержать
список карт, а не только одна карта.
А теперь, опять же, если мы изменить activeIndex, мы можем перейти от 0 до 1,
и теперь, когда вторая карта, и затем мы пошли в 0.
Так вот новый форсированным версии нашего.
>> ОК, так что теперь давайте вид списка, который показывает все карты в вашей программе,
таким образом, мы будем делать новый компонент, называемый ListView.
Пусть ListView равна react.createClass.
Поэтому мы хотим, чтобы сделать неупорядоченный список с элементом списка для каждой карты.
И так у нас есть куча карт.
Мы хотим, чтобы один элемент списка для каждой карты, верно?
Мы могли бы сделать для цикла или то, чтобы сделать новый элемент списка.
Но, как вы делаете это в Реагировать, использовать то, что называется карту.
Карта является инструментом или функция используется что для каждого элемента, проходит некоторую функцию,
принимает возвращаемое значение, и дает вам, что обратно.
>> Так как, например, у нас есть массив 1, 2, 3.map function-- и это
является сокращением для function-- х стрелками х раз х.
Это говорит, для каждого числа в 1, 2, 3, принять его.
Square, и вернуть его обратно.
Так что вы думаете 1, 2, 3.map х идет х раз
х дает вам обратно дано что эта функция
запустить на каждом элементе этого массива.
>> АУДИТОРИЯ: 1, 4 9?
>> Нееля MEHTA: Да, 1, 4, 9 потому что вы 1 раз 1.
Это дает вам один.
Это первый элемент.
>> 2 раз 2 4.
Это второй элемент.
3 раз 3 9.
Это третий элемент.
Сделайте чувство?
Так на карте есть техника, которую вы использовать в функциональных программистов,
новый стиль программирование сделать что-то
к каждому элементу в вашем списке.
И так это звучит знакомо.
У нас есть список карт.
Мы хотим, чтобы элемент списка для каждого Один из них, так что мы будем использовать только карту здесь.
Мы скажем, пусть список равных this.props, карты, карты.
>> И так дали карту, мы будет генерировать элемент списка
с содержанием стороны этой карты от него.
Давайте просто скажем, мы хотим, чтобы выдавать карты вопрос так card.question.
Так этот список содержит Массив Ли или элементов списка
где есть один список пункт для каждой карты,
и который содержит карты вопрос.
Сделайте чувство?
>> Круто, так что теперь давайте на самом деле, что из печати.
Так что мы будем возвращать ул.
Внутри этого неупорядоченного списка, мы просто придерживаться весь список
что они дали нам.
Круто.
>> Ладно, так что теперь это Вид работы список просто найти.
Любые вопросы о представлении списка?
Вы должны кучу карт.
Вы делаете элемент списка для каждой карты.
И вы поместить их в неупорядоченный Список, и вы дать его обратно.
Так что теперь давайте действовать так, мы вкладываем это внутри нашего приложения,
так что мы можем сделать это, представление списка.
Какие аргументы мы пройти его в список?
Какие свойства нам это даст?
Помните, что если вы даете это куча карт,
это сделает список смотреть на тех картах.
Так, что бы мы проходим здесь в качестве аргумента?
АУДИТОРИЯ: Список карт?
Нееля MEHTA: Да, так карточек равна this.props.cards, верно?
И поэтому только проблема является то, что вы можете только
Оказалось, один элемент верхнего уровня в визуализации, так что вы должны обернуть его в див.
Это странно.
Итак, давайте посмотрим если что.
Это работает?
>> Да, там вы идете.
Так что теперь у нас есть список карт в нижней части,
и тогда мы имеем нашу CardView себя на вершине,
и что будет переключаться между две стороны карты.
Теперь же в этом смысл, как я это сделал?
Да, это снова, у нас есть две составляющие.
Первый компонент печатает из каждая карта в списке.
Это представление списка.
И второй компонент печатает только эту карту.
Если вы даете ему определенную карту, то это распечатать информацию о том, что карты
и пусть вы щелкаете назад и вперед.
>> Так что, если мы хотим, мы можем попробовать и говорить Добавив новые возможности для этого.
В противном случае мы можем говорить немного больше о скорости реактора,
или мы можем ответить вопросы, вы, возможно, придется
потому что это все основные части того, чтобы реагировать, что я хочу поговорить.
Мы можем идти вперед.
Мы можем ответить на вопросы.
Все что пожелаете.
>> АУДИТОРИЯ: Можете ли вы использовать JSX в нормальном JavaScript?
Или это что-то, что пришел с [неразборчиво]?
>> Нееля MEHTA: Вопрос в том, Вы используете JSX с нормальной JavaScript?
Ответ: да.
JSX это просто способ его принимает ваши JavaScript, который имеет HTML внутри него,
и компилирует в JavaScript, что не HTML внутри него.
Так заметить that-- так заметите здесь.
Это выглядит, как у вас, как DIV и у вас есть вещи внутри него.
>> Это компилирует-код, который как генерирует то же самое.
Я думаю, что я хочу сказать, что JSX просто синтаксическая, как это
препроцессор для JavaScript гораздо как PHP препроцессор для HTML.
ОАО препроцессор для JavaScript, что позволяет
Вы помещаете HTML внутри вашей JavaScript.
И поэтому, если у вас есть право трансформатор которая является то, что называется [неразборчиво],
который будет трансформироваться.
Право препроцессор, это будет позволить вам сделать это.
>> АУДИТОРИЯ: [неразборчиво]
Нееля MEHTA: Обычно вам не нужно положить HTML внутри JavaScript
если ваш делать не реагировать.
Но вы можете сделать это в любом случае.
Ага?
>> АУДИТОРИЯ: Я думаю, что вы описал Реагировать
как функциональный язык программирования.
Мы учились в C CS50.
Разве С также функциональный язык?
Нееля MEHTA: Таким образом, вопрос о функциональной
по сравнению с другой, что называется необходимо или процедурного программирования.
Там две видов программ популярных.
Один называется процессуальная, что все о как делают команд,
и один функциональный, который является всем о том, функции и имеющих
вход и выход из них.
Реагировать является функциональным парадигма.
С очень процессуального парадигма.
>> И в качестве примера, С например, Вы не делаете это декларативный способ
сделать программу, верно?
Вы должны сказать, распечатайте этот.
Изменить эту структуру данных.
Распечатать эту.
Это все о командах.
>> В Реагировать, нет что многие команды.
Это все о том, компоненты, вместе взятые.
Они, как функций.
Вы должны как функции называется CardView,
которая является функцией который имеет вход, выход,
и так Реагировать все о этой философии
нам из having-- у вас есть данные.
Вы проходите через это Алгоритм, и это
выход HTML, что вам просто напечатаны страницу,
и поэтому вы должны построить его по частям.
>> Таким образом, чтобы сделать то, что метафора Я уже говорил, вы знаете, как
на Facebook, если вы получаете сообщение, и вы выбираете, какие части, чтобы обновить,
это процедурный характер.
Это необходимо, правильно?
ОК, я получил сообщение.
Давайте изменим там аккаунт.
>> Давайте поп окно здесь.
Давайте изменим там аккаунт.
Давайте рисовать это здесь.
Это процедурный подход.
>> Вот какие вещи, как угловые, Boost, Магистральная, другие механизмы использовать.
Реагировать функционально.
Это очень отличается способ думать о вещах.
Она занимает эту идею давайте функции или алгоритмы, которые будут вам
дать ему данные.
Это будет плевать, что это должно быть, и компьютер
будет заботиться о взвешивании.
Вы не справиться с этим самостоятельно.
Это делает немного смысла?
Да?
>> АУДИТОРИЯ: В функциональном языке, все происходит одновременно?
>> Нееля MEHTA: Нет, вещи в порядке.
Как здесь все еще заказать, но это не
произойдет в порядке, как оцениваем, команда, команды.
Это происходит в порядке функция дает Вам выход.
Положим, что в другой функции.
Положим, что в другой Функция, другая функция.
>> Если вы CS51, вы будете узнать функциональные программы
немного выходит за рамки этого.
Но в принципе, то, что делает Реагировать здорово не только
поток данных в одну сторону и виртуальный дом,
но также эта идея функциональное программирование.
И функциональное программирование очень легко сочинять и сделать прохладный вещи из,
и это очень легко думать о и рассуждать о.
Так что это еще один хороший розыгрыш React.
Есть еще вопросы?
Да?
>> АУДИТОРИЯ: Хм, почему бы вам использовать пусть, в отличие от вар?
>> Нееля MEHTA: Таким образом, вопрос почему вы используете пусть вместо вар?
Это то, что называется ES6 или ECMAScript 6.
Это новая версия JavaScript.
Там куча техническим причинам, но пусть это лучше версия вар.
>> Это, как вы объявить переменные.
Вы можете использовать пусть.
Вы можете использовать вар.
Пусть имеет кучу технических reasons-- вы можете посмотреть их
до later-- почему это лучше.
В принципе, ES6 имеет некоторые приятно Новый синтаксис, некоторые новые функции
на вершине старой JavaScript.
>> Итак, мы имеем, как пять минут.
Я просто хотел поговорить о еще одна вещь, очень быстро.
Если у Вас возникли вопросы, давайте поговорим об этом после того, как это.
Но просто так это получает пойман на камеру, я просто
хочу немного поговорить о том, как на самом деле использовать Реагировать в ваших приложениях.
>> Если вы идете сюда, Facebook.GitHub.IO/react,
это домашняя страница Реагировать, и он покажет вам, как вы на самом деле использовать
Реагировать на ваших страницах.
В принципе, это немного сложный попытке установить React.
Это не так просто, как вы просто перетащить и падение JavaScript в там.
>> Вы должны иметь свой трансформатор настроить, что будет, как и раньше,
превратить ваш JSX в нормальный JavaScript.
Вы должны будете, что вещь компиляции вы ES6 в нормальное русло.
JavaScript есть много движущихся части вы должны сделать, так есть, что
называется Йомен, Yeoman.io.
И это инструмент командной строки, который будет помочь вам эшафот свой Реагировать
проекты легко.
>> Таким образом, вы можете прочитать об этом позже, но есть некоторые инструменты
что старшина предлагает.
Они позволяют создать Реагировать Приложение всем построен в.
Как это будет построили в, компонентов, построенный в.
Это будет ваш трансформатор построен в.
Они имеют много прохладно материал построен автоматически
используя эти вещи, называемые генераторами.
>> Так что читайте об этом, если вам нравится.
Просто зайдите на Yeoman, Y-E-O-М-А-Н, и вы можете найти, как эти генераторы.
И с генераторами, как это, вы просто хотели один
это команды командной строки пара.
Это будет эшафот из Вся Реагировать приложение для вас.
Это будет получить всю ручную труб, и тяжелую работу сделал для вас,
и именно поэтому вы просто сосредоточиться на просто писать в React.
>> Так в основном построения Реагировать приложение нетривиально.
Это проводной вместе, но инструменты, которые сделаю это для вас.
Так что, если вы хотите, чтобы сделать Реагировать Приложение, попробуйте делать это таким образом.
Если вы просто хотите поэкспериментировать, Вы можете попробовать использовать этот CodePen
потому что это имеет CodePen все реагируют проводку.
Я сделал всю работу за вас уже.
>> Так что, если вы хотите, чтобы подобно Производство выпустить Реагировать приложение,
попробуйте один из этих генераторов.
Если вы просто хотите, чтобы играть вокруг, это часто стоит просто
как попробовать играть вокруг на CodePen здесь.
Звучит неплохо?
Круто.
>> Так что все у меня есть.
Опять же, весь код и примеры будет на этом сайте здесь.
Так, опять же, мы не говорили о многом синтаксис Реагировать,
но, чтобы найти всех тех, маленькие детали, синтаксические
все это будет доступно на этом сайте здесь.
>> Так что я бы рекомендовал, как первый шаг.
Положите его в свой CodePen.
Попробуйте работают над созданием это второй стадии.
Там это четвертый шаг, и только увидеть, где вы получите от этого.
>> Любые другие вопросы, проверить из этой странице или по электронной почте мне.
Вот мой электронный.
Но я хотел бы помочь вам с любой вопросы, вы, возможно, о React.
Так, да, это все, что у меня есть.
Спасибо всем большое за смотреть или за участие.
И я буду принимать какие-либо вопросы Вы могли бы иметь после этого в настоящее время.
Так что спасибо вам всем за просмотр.