SlideShare ist ein Scribd-Unternehmen logo
1 von 48
Downloaden Sie, um offline zu lesen
Введение в react и
react-native
Олег Нечипоренко
Toughbyte
http://toughbyte.com
Web 1.0 (HTTP)
Backend
PHP, Java, .NET …
Frontend
HTML, CSS
GET, POST
Backend
PHP, Java, .NET …
Frontend
HTML, CSS
GET, POST
WEB 2.0 (AJAX)
Backend
PHP, Java, .NET …
Frontend
HTML, CSS, Javascript
(jQuery, Zepto, Prototype…)
Frontend
HTML, CSS, Javascript
(jQuery, Zepto, Prototype…)
XHRXHR JSON, XML
Single Page Apps
Frontend
XHR
Browser
Events
Web
Sockets …
SPA Frameworks
• Ember
• Backbone
• Knockout
• Angular
• Batman
• CanJS
• …
Преимущества Angular
• Двусторонний биндинг (two-way binding)
• Простой механизм внедрения зависимостей (DI)
• Директивы
• Большой выбор сервисов “из коробки”
• Быстрое прототипирование
• Огромный выбор open source плагинов
Двусторонний
биндинг
Внедрение зависимостей
(Dependency injection)
Директивы
Недостатки Angular
• Двусторонний биндинг (two-way binding)
• Внедрение зависимостей (DI)
• Директивы
• Дебаггинг
• Отсутствие server-side rendering
• Ограниченность фреймворком
Двусторонний биндинг
Внедрение зависимостей
Директивы
Дебаггинг
Отсутствие server-
side rendering
Ограниченность
фреймворком
Кривая изучения Angular
Web 1.0 (HTTP)
Backend
PHP, Java, .NET …
Frontend
HTML, CSS
GET, POST
Backend
PHP, Java, .NET …
Frontend
HTML, CSS
GET, POST
React.js
• DOM-манипуляции очень дорого обходятся
• Javascript очень быстрый
• Virtual DOM
• Очень быстрый diff-алгоритм (O(n3) -> O(n))
React не MVC
фреймворк
React - это библиотека для построения
UI, которая автоматически управляет
всеми обновлениями интерфейса при
изменении данных приложения
React не использует
шаблонов
• Javascript очень мощный и гибкий язык
программирования и это очень важно для
построения больших приложений
• React объединяет логику представления с
разметкой, что позволяет гораздо проще
поддерживать и расширять приложение
• Разметка и содержание находятся в Javascript.
Нет конкатенации строк, что создает меньше
пространства для XSS-атак
React-компоненты
JSX - Javascript syntax
extension
JSX - то не шаблонизатор
React-компонент
props state
Rendered view
Жизненный цикл
компонента
Stateful-компонент
Приложение
Управление данными в
react-приложении - Flux
Однонаправленный поток
данных
Redux
Reduce
Redux
Initial app state
Reduce(appState, action)
New app state
Пример
React + Redux
Actions
Reducer
Component
React-native
“Learn once, write
everywhere”, вместо
“Write once, run everywhere”
Пример кода
Что почитать
• React (https://facebook.github.io/react/)
• React-native (https://facebook.github.io/react-
native/)
• Flux (https://facebook.github.io/flux/)
• Redux (http://redux.js.org)
• React tutorials (https://medium.com/react-tutorials)
Кого почитать
• Dan Abramov (https://github.com/gaearon, https://
twitter.com/dan_abramov, https://medium.com/
@dan_abramov)
• Michael Jackson (https://github.com/mjackson,
https://twitter.com/mjackson)
• https://twitter.com/Vjeux
• Cheng Lou (https://github.com/chenglou, https://
twitter.com/_chenglou)
Я
• Facebook - https://www.facebook.com/meafmira
• Github - https://github.com/miafmira
• Twitter - https://twitter.com/meafmira

Weitere ähnliche Inhalte

Andere mochten auch

Regimento interno do conselho municipal de saúde de jequié 01
Regimento interno do conselho municipal de saúde de jequié 01Regimento interno do conselho municipal de saúde de jequié 01
Regimento interno do conselho municipal de saúde de jequié 01claudio silva
 
Computacionherramientas
ComputacionherramientasComputacionherramientas
Computacionherramientastaniamoreno345
 
La educacion encierra un tesoro
La educacion encierra un tesoroLa educacion encierra un tesoro
La educacion encierra un tesoroKestor2364
 
2016 PPT
2016 PPT2016 PPT
2016 PPTgpnir4
 
Complementos de formación
Complementos de formaciónComplementos de formación
Complementos de formaciónAngelaMihura
 
Vedaacare Plan
Vedaacare PlanVedaacare Plan
Vedaacare Planvedaacare
 
presentacion en power point
presentacion en power point presentacion en power point
presentacion en power point lady2400
 
Resume Vilas M Mali
Resume Vilas M MaliResume Vilas M Mali
Resume Vilas M MaliVilas Mali
 

Andere mochten auch (10)

Regimento interno do conselho municipal de saúde de jequié 01
Regimento interno do conselho municipal de saúde de jequié 01Regimento interno do conselho municipal de saúde de jequié 01
Regimento interno do conselho municipal de saúde de jequié 01
 
Computacionherramientas
ComputacionherramientasComputacionherramientas
Computacionherramientas
 
La educacion encierra un tesoro
La educacion encierra un tesoroLa educacion encierra un tesoro
La educacion encierra un tesoro
 
2016 PPT
2016 PPT2016 PPT
2016 PPT
 
Complementos de formación
Complementos de formaciónComplementos de formación
Complementos de formación
 
Vedaacare Plan
Vedaacare PlanVedaacare Plan
Vedaacare Plan
 
Linkedin1
Linkedin1Linkedin1
Linkedin1
 
CURRICULUM VITAE
CURRICULUM VITAECURRICULUM VITAE
CURRICULUM VITAE
 
presentacion en power point
presentacion en power point presentacion en power point
presentacion en power point
 
Resume Vilas M Mali
Resume Vilas M MaliResume Vilas M Mali
Resume Vilas M Mali
 

Ähnlich wie Coding monday

Desktop app based on node js and html5
Desktop app based on node js and html5Desktop app based on node js and html5
Desktop app based on node js and html5Provectus
 
Node.js Меньше сложности, больше надежности Holy.js 2021
Node.js Меньше сложности, больше надежности Holy.js 2021Node.js Меньше сложности, больше надежности Holy.js 2021
Node.js Меньше сложности, больше надежности Holy.js 2021Timur Shemsedinov
 
Сложные социальные приложения с помощью JS MVC фреймворков
Сложные социальные приложения с помощью JS MVC фреймворковСложные социальные приложения с помощью JS MVC фреймворков
Сложные социальные приложения с помощью JS MVC фреймворковz-tech
 
Быстрая и безболезненная разработка клиентской части веб-приложений
Быстрая и безболезненная разработка клиентской части веб-приложенийБыстрая и безболезненная разработка клиентской части веб-приложений
Быстрая и безболезненная разработка клиентской части веб-приложенийYaroslav Tkachenko
 
SECON'2016. Сергей Аверин. Javascript-фреймворки:
 должен остаться только один
SECON'2016. Сергей Аверин. Javascript-фреймворки:
 должен остаться только одинSECON'2016. Сергей Аверин. Javascript-фреймворки:
 должен остаться только один
SECON'2016. Сергей Аверин. Javascript-фреймворки:
 должен остаться только одинSECON
 
SECON'2016. Аверин Сергей, Javascript-фреймворки:
 должен остаться только один
SECON'2016. Аверин Сергей, Javascript-фреймворки:
 должен остаться только одинSECON'2016. Аверин Сергей, Javascript-фреймворки:
 должен остаться только один
SECON'2016. Аверин Сергей, Javascript-фреймворки:
 должен остаться только одинSECON
 
Web programming modern tendencies
Web programming modern tendenciesWeb programming modern tendencies
Web programming modern tendenciesDarkestMaster
 
Javascript-фреймворки:
 должен остаться только один
Javascript-фреймворки:
 должен остаться только одинJavascript-фреймворки:
 должен остаться только один
Javascript-фреймворки:
 должен остаться только одинSergey Xek
 
Javascript-фреймворки: должен остаться только один / Аверин Сергей (Acronis)
Javascript-фреймворки: должен остаться только один / Аверин Сергей (Acronis)Javascript-фреймворки: должен остаться только один / Аверин Сергей (Acronis)
Javascript-фреймворки: должен остаться только один / Аверин Сергей (Acronis)Ontico
 
Юрий Буянов «Архитектура Goozy»
Юрий Буянов «Архитектура Goozy»Юрий Буянов «Архитектура Goozy»
Юрий Буянов «Архитектура Goozy»e-Legion
 
YuryByyanov (e-legion) @ CodeCamp2011
YuryByyanov (e-legion) @ CodeCamp2011YuryByyanov (e-legion) @ CodeCamp2011
YuryByyanov (e-legion) @ CodeCamp2011CodeCamp
 
Protrarctor and Angular
Protrarctor and AngularProtrarctor and Angular
Protrarctor and AngularSQALab
 
Решения сообщества для SharePoint
Решения сообщества для SharePointРешения сообщества для SharePoint
Решения сообщества для SharePointVitaly Baum
 
2015-12-05 Сергей Аверин - Javascript-фреймворки: должен остаться только один
2015-12-05 Сергей Аверин - Javascript-фреймворки: должен остаться только один2015-12-05 Сергей Аверин - Javascript-фреймворки: должен остаться только один
2015-12-05 Сергей Аверин - Javascript-фреймворки: должен остаться только одинHappyDev
 
Sqadays 8-barancev
Sqadays 8-barancevSqadays 8-barancev
Sqadays 8-barancevAlexei Lupan
 
Node.js введение в технологию, КПИ #ITmeetingKPI
Node.js введение в технологию, КПИ  #ITmeetingKPINode.js введение в технологию, КПИ  #ITmeetingKPI
Node.js введение в технологию, КПИ #ITmeetingKPITimur Shemsedinov
 
Алексей Баранцев -- Какое дело тестировщикам до исходного кода?
Алексей Баранцев -- Какое дело тестировщикам до исходного кода?Алексей Баранцев -- Какое дело тестировщикам до исходного кода?
Алексей Баранцев -- Какое дело тестировщикам до исходного кода?sqadays8
 
Как мы разрабатываем новый фронтенд / Филипп Нехаев (Tinkoff.ru)
Как мы разрабатываем новый фронтенд / Филипп Нехаев (Tinkoff.ru)Как мы разрабатываем новый фронтенд / Филипп Нехаев (Tinkoff.ru)
Как мы разрабатываем новый фронтенд / Филипп Нехаев (Tinkoff.ru)Ontico
 

Ähnlich wie Coding monday (20)

Desktop app based on node js and html5
Desktop app based on node js and html5Desktop app based on node js and html5
Desktop app based on node js and html5
 
Node.js Меньше сложности, больше надежности Holy.js 2021
Node.js Меньше сложности, больше надежности Holy.js 2021Node.js Меньше сложности, больше надежности Holy.js 2021
Node.js Меньше сложности, больше надежности Holy.js 2021
 
Сложные социальные приложения с помощью JS MVC фреймворков
Сложные социальные приложения с помощью JS MVC фреймворковСложные социальные приложения с помощью JS MVC фреймворков
Сложные социальные приложения с помощью JS MVC фреймворков
 
Быстрая и безболезненная разработка клиентской части веб-приложений
Быстрая и безболезненная разработка клиентской части веб-приложенийБыстрая и безболезненная разработка клиентской части веб-приложений
Быстрая и безболезненная разработка клиентской части веб-приложений
 
SECON'2016. Сергей Аверин. Javascript-фреймворки:
 должен остаться только один
SECON'2016. Сергей Аверин. Javascript-фреймворки:
 должен остаться только одинSECON'2016. Сергей Аверин. Javascript-фреймворки:
 должен остаться только один
SECON'2016. Сергей Аверин. Javascript-фреймворки:
 должен остаться только один
 
SECON'2016. Аверин Сергей, Javascript-фреймворки:
 должен остаться только один
SECON'2016. Аверин Сергей, Javascript-фреймворки:
 должен остаться только одинSECON'2016. Аверин Сергей, Javascript-фреймворки:
 должен остаться только один
SECON'2016. Аверин Сергей, Javascript-фреймворки:
 должен остаться только один
 
Web programming modern tendencies
Web programming modern tendenciesWeb programming modern tendencies
Web programming modern tendencies
 
Javascript-фреймворки:
 должен остаться только один
Javascript-фреймворки:
 должен остаться только одинJavascript-фреймворки:
 должен остаться только один
Javascript-фреймворки:
 должен остаться только один
 
Javascript-фреймворки: должен остаться только один / Аверин Сергей (Acronis)
Javascript-фреймворки: должен остаться только один / Аверин Сергей (Acronis)Javascript-фреймворки: должен остаться только один / Аверин Сергей (Acronis)
Javascript-фреймворки: должен остаться только один / Аверин Сергей (Acronis)
 
Юрий Буянов «Архитектура Goozy»
Юрий Буянов «Архитектура Goozy»Юрий Буянов «Архитектура Goozy»
Юрий Буянов «Архитектура Goozy»
 
YuryByyanov (e-legion) @ CodeCamp2011
YuryByyanov (e-legion) @ CodeCamp2011YuryByyanov (e-legion) @ CodeCamp2011
YuryByyanov (e-legion) @ CodeCamp2011
 
Protrarctor and Angular
Protrarctor and AngularProtrarctor and Angular
Protrarctor and Angular
 
Решения сообщества для SharePoint
Решения сообщества для SharePointРешения сообщества для SharePoint
Решения сообщества для SharePoint
 
2015-12-05 Сергей Аверин - Javascript-фреймворки: должен остаться только один
2015-12-05 Сергей Аверин - Javascript-фреймворки: должен остаться только один2015-12-05 Сергей Аверин - Javascript-фреймворки: должен остаться только один
2015-12-05 Сергей Аверин - Javascript-фреймворки: должен остаться только один
 
Sqadays 8-barancev
Sqadays 8-barancevSqadays 8-barancev
Sqadays 8-barancev
 
HTML5 WebSockets and WebWorkers
HTML5 WebSockets and WebWorkersHTML5 WebSockets and WebWorkers
HTML5 WebSockets and WebWorkers
 
Full Stack разработка на JavaScript
Full Stack разработка на JavaScriptFull Stack разработка на JavaScript
Full Stack разработка на JavaScript
 
Node.js введение в технологию, КПИ #ITmeetingKPI
Node.js введение в технологию, КПИ  #ITmeetingKPINode.js введение в технологию, КПИ  #ITmeetingKPI
Node.js введение в технологию, КПИ #ITmeetingKPI
 
Алексей Баранцев -- Какое дело тестировщикам до исходного кода?
Алексей Баранцев -- Какое дело тестировщикам до исходного кода?Алексей Баранцев -- Какое дело тестировщикам до исходного кода?
Алексей Баранцев -- Какое дело тестировщикам до исходного кода?
 
Как мы разрабатываем новый фронтенд / Филипп Нехаев (Tinkoff.ru)
Как мы разрабатываем новый фронтенд / Филипп Нехаев (Tinkoff.ru)Как мы разрабатываем новый фронтенд / Филипп Нехаев (Tinkoff.ru)
Как мы разрабатываем новый фронтенд / Филипп Нехаев (Tinkoff.ru)
 

Coding monday