45
Докладчик: Кашеверов Александр Дата: 19 июля 2016 года Обзор React.js

Александр Кашеверов — Обзор React.js

  • Upload
    dataart

  • View
    169

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Александр Кашеверов — Обзор React.js

Докладчик: Кашеверов АлександрДата: 19 июля 2016 года

Обзор React.js

Page 2: Александр Кашеверов — Обзор React.js
Page 3: Александр Кашеверов — Обзор React.js

О чём расскажу

• Про React• Virtual DOM• JSX• Примеры• Routing• Flux

Page 4: Александр Кашеверов — Обзор React.js

Про React

Page 5: Александр Кашеверов — Обзор React.js

Клиентские фреймворки / библиотеки

Page 6: Александр Кашеверов — Обзор React.js

Статистика на Github

commits 5015 12643 3322 6968

contributors 306 601 289 746

stars 1779 1117 25141 3251

open issues 1230 169 37 490

1 commit date Sep 18, 2014 Apr 30, 2011 Sep 30, 2010 May 29, 2013

состояние на 17 июля 2016

Page 7: Александр Кашеверов — Обзор React.js

Статистика Stackoverflow за 2016 год

Page 8: Александр Кашеверов — Обзор React.js

Статистика Stackoverflow за 2016 год

Page 9: Александр Кашеверов — Обзор React.js

Статистика Stackoverflow за 2016 год

Page 10: Александр Кашеверов — Обзор React.js

Кто использует React.js

Facebook

InstagramCodeacademy

Yahoo

New York Times

Watsapp for web

Airbnb

Page 11: Александр Кашеверов — Обзор React.js

React.js это

“A JAVASCRIPT LIBRARY FOR

BUILDING USER INTERFACES”

(c) facebook.github.io/react/

Page 12: Александр Кашеверов — Обзор React.js

Виртуальный DOM

Page 13: Александр Кашеверов — Обзор React.js

Реальный DOM (Document Object Model)

Page 14: Александр Кашеверов — Обзор React.js

Виртуальный DOM

- это техника и набор библиотек / алгоритмов, которые позволяют улучшить производительность на клиентской стороне, избегая прямой работы с DOM путем работы с легким JavaScript-объектом, имитирующем DOM-дерево.

Page 15: Александр Кашеверов — Обзор React.js

JSX

Page 16: Александр Кашеверов — Обзор React.js

Как создать element в JS

Page 17: Александр Кашеверов — Обзор React.js

JSX is a XML-like syntax extension to ECMAScript

JSX = JS+XML

Page 18: Александр Кашеверов — Обзор React.js

Jsx в react

Page 19: Александр Кашеверов — Обзор React.js

Нелогично? Абсурдно вставлять html в js?

Page 20: Александр Кашеверов — Обзор React.js

Нелогично? Абсурдно вставлять html в js?

JSX упрощает работу с html элементами в javascript

Page 21: Александр Кашеверов — Обзор React.js

Примеры

Page 22: Александр Кашеверов — Обзор React.js

Hello world

Page 23: Александр Кашеверов — Обзор React.js

Props

- нельзя изменить из компонента

Page 24: Александр Кашеверов — Обзор React.js

React - пример timer

Page 25: Александр Кашеверов — Обзор React.js

React - пример TODO list

Page 26: Александр Кашеверов — Обзор React.js

React - пример TODO list

Page 27: Александр Кашеверов — Обзор React.js

React - пример TODO list

Page 28: Александр Кашеверов — Обзор React.js

React - пример TODO list

Page 29: Александр Кашеверов — Обзор React.js

React - пример TODO list

Page 30: Александр Кашеверов — Обзор React.js

Подключить библиотеку

Page 31: Александр Кашеверов — Обзор React.js

React router

Page 32: Александр Кашеверов — Обзор React.js

React router

Page 33: Александр Кашеверов — Обзор React.js

React router

Page 34: Александр Кашеверов — Обзор React.js

Подключить библиотеку

Page 35: Александр Кашеверов — Обзор React.js

Некоторые особенности

Page 36: Александр Кашеверов — Обзор React.js

Жизненный цикл

• ComponentWillMount• render• componentDidMount

• componentWillUpdate• shouldComponentUpdate• componentWillReceiveProps• componentDidUpdate• componentWillUnmount

Page 37: Александр Кашеверов — Обзор React.js

Особенности

• Нет 2-way binding (только от parent к child)• Декларативный• Возвращаясь к проекту через год, ты вероятно поймешь, о чем шла речь

Page 38: Александр Кашеверов — Обзор React.js

Flux

Page 39: Александр Кашеверов — Обзор React.js

Flux - паттерн проектирования

Page 40: Александр Кашеверов — Обзор React.js

Flux особенности

• Однонаправленность• Состояния• События• Не MVC

Page 41: Александр Кашеверов — Обзор React.js

Популярные Flux фреймворки

• Redux• Alt• Reflux• Fluxxor

Page 42: Александр Кашеверов — Обзор React.js

Что рассмотрели

Page 43: Александр Кашеверов — Обзор React.js

Что рассмотрели

• Про React в этом мире• Virtual DOM• JSX• Простейшие примеры react• React-router• Несколько слов о Flux

Page 44: Александр Кашеверов — Обзор React.js

Домашнее задание

Что почитать

[email protected]

• https://github.com/kashesandr

• https://twitter.com/kashesandr

Контакты

Электронная очередь в банк • http://bit.ly/summer2016react

• http://bit.ly/summer2016react-ru

• http://bit.ly/summer2016babel

• http://bit.ly/summer2016react-router

• http://bit.ly/summer2016redux

Page 45: Александр Кашеверов — Обзор React.js

Пожалуйста, ответьте на 3 вопроса

bit.ly/web-summer-2016