SlideShare uma empresa Scribd logo
1 de 46
Baixar para ler offline
React	Performance
Is	syntactic	sugar	so	sweet?
How	does	React
work?
2
How	does	React	work?
	 class	Avatar	extends	Component	{
	 	 render	()	{
	 	 	 return	(
	 	 	 	 <img	src="./public/avatar.png"	{...this.props}	/>
	 	 	 )
	 	 }
	 }
3
How	does	React	work?
	 class	Avatar	extends	Component	{
	 	 render	()	{
	 	 	 return	(
	 	 	 	 <img	src="./public/avatar.png"	{...this.props}	/>
	 	 	 )
	 	 }
	 }
3
How	does	React	work?
	 class	Avatar	extends	Component	{
	 	 render	()	{
	 	 	 return	(
	 	 	 	 <img	src="./public/avatar.png"	{...this.props}	/>
	 	 	 )
	 	 }
	 }
3
How	does	React	work?
	 class	Avatar	extends	Component	{
	 	 render	()	{
	 	 	 return	(
	 	 	 	 <img	src="./public/avatar.png"	{...this.props}	/>
	 	 	 )
	 	 }
	 }
3
How	does	React	work?
var	Avatar	=	function	(_Component)	{
	 _inherits(Avatar,	_Component);
	 function	Avatar()	{
	 	 _classCallCheck(this,	Avatar);
	 	 return		_possibleConstructorReturn(this,	(Avatar.__proto__	||
	 	 	 	 Object.getPrototypeOf(Avatar)).apply(this,	arguments));
	 }
	 _createClass(Avatar,	[{
	 	 key:	"render",
	 	 value:	function	render()	{
	 	 	 return	React.createElement(
	 	 	 	 "img",
	 	 	 	 _extends({	src:	"./public/avatar.png"	},
	 	 	 	 this.props)
	 	 	 );
	 	 }
	 }]);
4
React	Perf	tool
5
React	Perf	tool 6
React	Perf	tool
class	Avatar	extends	Component	{
	 render	()	{
	 	 return	(
	 	 	 <img	src="./public/avatar.png"	{...this.props}	/>
	 	 )
	 }
}
	 	
7
React	Perf	tool
class	Avatar	extends	Component	{
	 render	()	{
	 	 return	(
	 	 	 <img	src="./public/avatar.png"	{...this.props}	/>
	 	 )
	 }
}
	 	
7
React	Perf	tool
class	Avatar	extends	Component	{
	 render	()	{
	 	 return	(
	 	 	 <img	src="./public/avatar.png"	{...this.props}	/>
	 	 )
	 }
}
	 	
7
React	Perf	tool
class	Avatar	extends	Component	{
	 render	()	{
	 	 return	(
	 	 	 <img	src="./public/avatar.png"	{...this.props}	/>
	 	 )
	 }
}
	 	
7
Styling
8
Styling
	 class	Avatar	extends	PureComponent	{
	 	 render	()	{
	 	 	 return	<img	src="./public/avatar.png"	{...this.props}	/>
	 	 }
	 }
9
Styling
	 class	Avatar	extends	PureComponent	{
	 	 render	()	{
	 	 	 return	<img	src="./public/avatar.png"	{...this.props}	/>
	 	 }
	 }
	 class	Styling	extends	PureComponent	{
	 	 render	()	{
	 	 	 return	<Avatar	style={{width:	'100px'}}	/>
	 	 }
	 }
9
Styling
	 class	Avatar	extends	PureComponent	{
	 	 render	()	{
	 	 	 return	<img	src="./public/avatar.png"	{...this.props}	/>
	 	 }
	 }
	 class	Styling	extends	PureComponent	{
	 	 render	()	{
	 	 	 return	<Avatar	style={{width:	'100px'}}	/>
	 	 }
	 }
9
Styling
	 class	Avatar	extends	PureComponent	{
	 	 render	()	{
	 	 	 return	<img	src="./public/avatar.png"	{...this.props}	/>
	 	 }
	 }
10
Styling
	 class	Avatar	extends	PureComponent	{
	 	 render	()	{
	 	 	 return	<img	src="./public/avatar.png"	{...this.props}	/>
	 	 }
	 }
	 const	style	=	{width:	'100px'}
	 class	StylingFixed	extends	PureComponent	{
	 	 render	()	{
	 	 	 return	<Avatar	style={style}	/>
	 	 }
	 }
10
Styling
	 class	Avatar	extends	PureComponent	{
	 	 render	()	{
	 	 	 return	<img	src="./public/avatar.png"	{...this.props}	/>
	 	 }
	 }
	 const	style	=	{width:	'100px'}
	 class	StylingFixed	extends	PureComponent	{
	 	 render	()	{
	 	 	 return	<Avatar	style={style}	/>
	 	 }
	 }
10
Inline	handler
11
Inline	handler
	 class	Avatar	extends	PureComponent	{
	 	 render	()	{
	 	 	 return	<img	src="./public/avatar.png"	{...this.props}	/>
	 	 }
	 }
12
Inline	handler
	 class	Avatar	extends	PureComponent	{
	 	 render	()	{
	 	 	 return	<img	src="./public/avatar.png"	{...this.props}	/>
	 	 }
	 }
	 class	InlineHandler	extends	PureComponent	{
	 	 render	()	{
	 	 	 return	<Avatar	onClick={()=>{this.setState({clicked:true})}}	/>
	 	 }
	 }
12
Inline	handler
	 class	Avatar	extends	PureComponent	{
	 	 render	()	{
	 	 	 return	<img	src="./public/avatar.png"	{...this.props}	/>
	 	 }
	 }
	 class	InlineHandler	extends	PureComponent	{
	 	 render	()	{
	 	 	 return	<Avatar	onClick={()=>{this.setState({clicked:true})}}	/>
	 	 }
	 }
12
Inline	handler
var	InlineHandler	=	function	(_PureComponent)	{
	 _inherits(InlineHandler,	_PureComponent);
	 function	InlineHandler()	{
	 	 _classCallCheck(this,	InlineHandler);
	 	 return		_possibleConstructorReturn(this,	(InlineHandler.__proto__	||
	 	 	 	 Object.getPrototypeOf(InlineHandler)).apply(this,	arguments));
	 }
	 _createClass(InlineHandler,	[{
	 	 key:	"render",
	 	 value:	function	render()	{
	 	 	 var	_this2	=	this;
	 	 	 return	React.createElement(
	 	 	 	 "div",
	 	 	 	 null,
	 	 	 	 React.createElement(Avatar,	{	onClick:	function	onClick()	{
	 	 	 	 	 _this2.setState({	clicked:	true	});
	 	 	 	 }	})
	 	 	 );
	 	 }
	 }]);
	 return	InlineHandler;
}
13
Inline	handler
class	InlineHandlerFixed	extends	PureComponent	{
	 constructor	(props,	context)	{
	 	 super(props,	context);
	 	 this.handleClick	=	this.handleClick.bind(this)
	 }
	 handleClick	()	{
	 	 this.setState({
	 	 	 clicked:true
	 	 })
	 }
	 render	()	{
	 	 return	<Avatar	onClick={this.handleClick}	/>
	 }
}
14
Inline	handler
class	InlineHandlerFixed	extends	PureComponent	{
	 constructor	(props,	context)	{
	 	 super(props,	context);
	 	 this.handleClick	=	this.handleClick.bind(this)
	 }
	 handleClick	()	{
	 	 this.setState({
	 	 	 clicked:true
	 	 })
	 }
	 render	()	{
	 	 return	<Avatar	onClick={this.handleClick}	/>
	 }
}
14
Composition
15
Composition
class	Select	extends	PureComponent	{
	 render	()	{
	 	 return	(
	 	 	 <div>
	 	 	 	 {this.props.children}
	 	 	 </div>
	 	 )
	 }
}
class	Option	extends	PureComponent	{
	 render	()	{
	 	 return	(
	 	 	 <span>{this.props.title}</span>
	 	 )
	 }
}
16
Composition
class	Composition	extends	PureComponent	{
	 handleUpdate	=	()	=>	{
	 	 this.forceUpdate()
	 }
	 render()	{
	 	 return	(
	 	 	 <div>
	 	 	 	 <button	onClick={this.handleUpdate}>Update</button>
	 	 	 	 <Select>
	 	 	 	 	 <Option	title="Title	1"	/>
	 	 	 	 	 <Option	title="Title	2"	/>
	 	 	 	 	 <Option	title="Title	3"	/>
	 	 	 	 	 <Option	title="Title	4"	/>
	 	 	 	 	 <Option	title="Title	5"	/>
	 	 	 	 </Select>
	 	 	 </div>
	 	 );
	 }
}
17
Composition
class	Composition	extends	PureComponent	{
	 handleUpdate	=	()	=>	{
	 	 this.forceUpdate()
	 }
	 render()	{
	 	 return	(
	 	 	 <div>
	 	 	 	 <button	onClick={this.handleUpdate}>Update</button>
	 	 	 	 <Select>
	 	 	 	 	 <Option	title="Title	1"	/>
	 	 	 	 	 <Option	title="Title	2"	/>
	 	 	 	 	 <Option	title="Title	3"	/>
	 	 	 	 	 <Option	title="Title	4"	/>
	 	 	 	 	 <Option	title="Title	5"	/>
	 	 	 	 </Select>
	 	 	 </div>
	 	 );
	 }
}
17
Composition
class	WrappedSelect	extends	PureComponent	{
	 static	propTypes	=	{
	 	 options:	PropTypes.array
	 }
	 render	()	{
	 	 return	(
	 	 	 <Select>
	 	 	 	 {
	 	 	 	 	 this.props.options.map((option)	=>	(
	 	 	 	 	 	 <Option	key={option}	title={option}	/>
	 	 	 	 	 ))
	 	 	 	 }
	 	 	 </Select>
	 	 )
	 }
}
18
Composition
class	CompositionFixed	extends	PureComponent	{
	 constructor	(props,	context)	{
	 	 super(props,	context)
	 	 this.state	=	{
	 	 	 options:	["Title	1",	"Title	2",	"Title	3",	"Title	4",	"Title	5"]
	 	 }
	 }
	 handleUpdate	=	()	=>	{
	 	 this.forceUpdate()
	 }
	 render	()	{
	 	 return	(
	 	 	 <div>
	 	 	 	 <button	onClick={this.handleUpdate}>Update</button>
	 	 	 	 <WrappedSelect	options={this.state.options}/>
	 	 	 </div>
	 	 )
	 }
}
19
Composition
class	CompositionFixed	extends	PureComponent	{
	 constructor	(props,	context)	{
	 	 super(props,	context)
	 	 this.state	=	{
	 	 	 options:	["Title	1",	"Title	2",	"Title	3",	"Title	4",	"Title	5"]
	 	 }
	 }
	 handleUpdate	=	()	=>	{
	 	 this.forceUpdate()
	 }
	 render	()	{
	 	 return	(
	 	 	 <div>
	 	 	 	 <button	onClick={this.handleUpdate}>Update</button>
	 	 	 	 <WrappedSelect	options={this.state.options}/>
	 	 	 </div>
	 	 )
	 }
}
19
Conditional
Rendering
20
Conditional	Rendering
class	ConditionalRendering	extends	PureComponent	{
	 constructor	(props,	context)	{
	 	 super(props,	context);
	 	 this.state	=	{	list:	range(1,100000)	}
	 }
	 handleUpdate	=	()	=>	{	this.forceUpdate()	}
	 render	()	{
	 	 return	(
	 	 	 <div>
	 	 	 	 <button	onClick={this.handleUpdate}>Update</button>
	 	 	 	 {
	 	 	 	 	 this.state.list.map((item)	=>	(
	 	 	 	 	 	 <h1	key={item}>{item}</h1>
	 	 	 	 	 ))
	 	 	 	 }
	 	 	 </div>
	 	 )
	 }
}
21
Conditional	Rendering
class	ConditionalRendering	extends	PureComponent	{
	 constructor	(props,	context)	{
	 	 super(props,	context);
	 	 this.state	=	{	list:	range(1,100000)	}
	 }
	 handleUpdate	=	()	=>	{	this.forceUpdate()	}
	 render	()	{
	 	 return	(
	 	 	 <div>
	 	 	 	 <button	onClick={this.handleUpdate}>Update</button>
	 	 	 	 {
	 	 	 	 	 this.state.list.map((item)	=>	(
	 	 	 	 	 	 <h1	key={item}>{item}</h1>
	 	 	 	 	 ))
	 	 	 	 }
	 	 	 </div>
	 	 )
	 }
}
21
Conditional	Rendering
class	List	extends	PureComponent	{
	 static	propTypes	=	{
	 	 list:	PropTypes.array
	 }
	 render	()	{
	 	 return	(
	 	 	 <div>
	 	 	 	 {
	 	 	 	 	 this.props.list.map((item)	=>	(
	 	 	 	 	 	 <h1	key={item}>{item}</h1>
	 	 	 	 	 ))
	 	 	 	 }
	 	 	 </div>
	 	 )
	 }
}
22
Conditional	Rendering
class	ConditionalRenderingFixed	extends	PureComponent	{
	 constructor	(props,	context)	{
	 	 super(props,	context);
	 	 this.state	=	{	list:	range(1,100000)	}
	 }
	 handleUpdate	=	()	=>	{	this.forceUpdate()	}
	 render	()	{
	 	 return	(
	 	 	 <div>
	 	 	 	 <button	onClick={this.handleUpdate}>Update</button>
	 	 	 	 <List	list={this.state.list}/>
	 	 	 </div>
	 	 )
	 }
}
23
Conditional	Rendering
class	ConditionalRenderingFixed	extends	PureComponent	{
	 constructor	(props,	context)	{
	 	 super(props,	context);
	 	 this.state	=	{	list:	range(1,100000)	}
	 }
	 handleUpdate	=	()	=>	{	this.forceUpdate()	}
	 render	()	{
	 	 return	(
	 	 	 <div>
	 	 	 	 <button	onClick={this.handleUpdate}>Update</button>
	 	 	 	 <List	list={this.state.list}/>
	 	 	 </div>
	 	 )
	 }
}
23
Const	Component
24
Conditional	Rendering
class	ConstComponent	extends	PureComponent	{
	 handleClick	=	()	=>	{
	 	 this.forceUpdate()
	 }
	 render()	{
	 	 return	(
	 	 	 <div>
	 	 	 	 <button	onClick={this.handleClick}>Update</button>
	 	 	 	 <Const	value={1}	/>
	 	 	 	 <Const	value={1}	/>
	 	 	 	 <Const	value={1}	/>
	 	 	 	 ...	10	000	...
	 	 	 </div>
	 	 )
	 }
}
25
Conditional	Rendering
class	ConstComponent	extends	PureComponent	{
	 handleClick	=	()	=>	{
	 	 this.forceUpdate()
	 }
	 render()	{
	 	 return	(
	 	 	 <div>
	 	 	 	 <button	onClick={this.handleClick}>Update</button>
	 	 	 	 <Const	value={1}	/>
	 	 	 	 <Const	value={1}	/>
	 	 	 	 <Const	value={1}	/>
	 	 	 	 ...	10	000	...
	 	 	 </div>
	 	 )
	 }
}
25
Conditional	Rendering
const	component	=	<Const	value={1}	/>
class	ConstComponentFixed	extends	PureComponent	{
	 handleClick	=	()	=>	{
	 	 this.forceUpdate()
	 }
	 render()	{
	 	 return	(
	 	 	 <div>
	 	 	 	 <button	onClick={this.handleClick}>Update</button>
	 	 	 	 {component}
	 	 	 	 {component}
	 	 	 	 {component}
	 	 	 	 ...	10	000	...
	 	 	 </div>
	 	 )
	 }
}
26
Conditional	Rendering
const	component	=	<Const	value={1}	/>
class	ConstComponentFixed	extends	PureComponent	{
	 handleClick	=	()	=>	{
	 	 this.forceUpdate()
	 }
	 render()	{
	 	 return	(
	 	 	 <div>
	 	 	 	 <button	onClick={this.handleClick}>Update</button>
	 	 	 	 {component}
	 	 	 	 {component}
	 	 	 	 {component}
	 	 	 	 ...	10	000	...
	 	 	 </div>
	 	 )
	 }
}
26
Спасибо	за
Внимание!
@maxkudla
27

Mais conteúdo relacionado

Mais procurados

DroidKnight 2018 State machine by Selaed class
DroidKnight 2018 State machine by Selaed classDroidKnight 2018 State machine by Selaed class
DroidKnight 2018 State machine by Selaed class
Myeongin Woo
 
ECOOP01 AOOSDM Poster.ppt
ECOOP01 AOOSDM Poster.pptECOOP01 AOOSDM Poster.ppt
ECOOP01 AOOSDM Poster.ppt
Ptidej Team
 
An introduction to property-based testing
An introduction to property-based testingAn introduction to property-based testing
An introduction to property-based testing
Vincent Pradeilles
 

Mais procurados (20)

Simplified Android Development with Simple-Stack
Simplified Android Development with Simple-StackSimplified Android Development with Simple-Stack
Simplified Android Development with Simple-Stack
 
Mocks, Spies, and Timers - Oh My!
Mocks, Spies, and Timers - Oh My!Mocks, Spies, and Timers - Oh My!
Mocks, Spies, and Timers - Oh My!
 
FormsKit: reactive forms driven by state. UA Mobile 2017.
FormsKit: reactive forms driven by state. UA Mobile 2017.FormsKit: reactive forms driven by state. UA Mobile 2017.
FormsKit: reactive forms driven by state. UA Mobile 2017.
 
The Settings API
The Settings APIThe Settings API
The Settings API
 
DroidKnight 2018 State machine by Selaed class
DroidKnight 2018 State machine by Selaed classDroidKnight 2018 State machine by Selaed class
DroidKnight 2018 State machine by Selaed class
 
Indeed My Jobs: A case study in ReactJS and Redux (Meetup talk March 2016)
Indeed My Jobs: A case study in ReactJS and Redux (Meetup talk March 2016)Indeed My Jobs: A case study in ReactJS and Redux (Meetup talk March 2016)
Indeed My Jobs: A case study in ReactJS and Redux (Meetup talk March 2016)
 
Android App Development - 05 Action bar
Android App Development - 05 Action barAndroid App Development - 05 Action bar
Android App Development - 05 Action bar
 
Action bar
Action barAction bar
Action bar
 
Introduction to Web Components
Introduction to Web ComponentsIntroduction to Web Components
Introduction to Web Components
 
Matteo Antony Mistretta - React, the Inglorious way - Codemotion Amsterdam 2019
Matteo Antony Mistretta - React, the Inglorious way - Codemotion Amsterdam 2019Matteo Antony Mistretta - React, the Inglorious way - Codemotion Amsterdam 2019
Matteo Antony Mistretta - React, the Inglorious way - Codemotion Amsterdam 2019
 
Future of UI Automation testing and JDI
Future of UI Automation testing and JDIFuture of UI Automation testing and JDI
Future of UI Automation testing and JDI
 
React.js workshop by tech47.in
React.js workshop by tech47.inReact.js workshop by tech47.in
React.js workshop by tech47.in
 
Paging Like A Pro
Paging Like A ProPaging Like A Pro
Paging Like A Pro
 
Handling action bar in Android
Handling action bar in AndroidHandling action bar in Android
Handling action bar in Android
 
Powering code reuse with context and render props
Powering code reuse with context and render propsPowering code reuse with context and render props
Powering code reuse with context and render props
 
Building complex User Interfaces with Sitecore and React
Building complex User Interfaces with Sitecore and ReactBuilding complex User Interfaces with Sitecore and React
Building complex User Interfaces with Sitecore and React
 
Magento 2 | Declarative schema
Magento 2 | Declarative schemaMagento 2 | Declarative schema
Magento 2 | Declarative schema
 
ECOOP01 AOOSDM Poster.ppt
ECOOP01 AOOSDM Poster.pptECOOP01 AOOSDM Poster.ppt
ECOOP01 AOOSDM Poster.ppt
 
Stay with React.js in 2020
Stay with React.js in 2020Stay with React.js in 2020
Stay with React.js in 2020
 
An introduction to property-based testing
An introduction to property-based testingAn introduction to property-based testing
An introduction to property-based testing
 

Destaque

Frontendlab: Cравнить Несравнимое - Юлия Пучнина
Frontendlab: Cравнить Несравнимое  - Юлия ПучнинаFrontendlab: Cравнить Несравнимое  - Юлия Пучнина
Frontendlab: Cравнить Несравнимое - Юлия Пучнина
GeeksLab Odessa
 

Destaque (16)

JS Lab2017_Под микроскопом: блеск и нищета микросервисов на node.js
JS Lab2017_Под микроскопом: блеск и нищета микросервисов на node.js JS Lab2017_Под микроскопом: блеск и нищета микросервисов на node.js
JS Lab2017_Под микроскопом: блеск и нищета микросервисов на node.js
 
JS Lab2017_Redux: время двигаться дальше?_Екатерина Лизогубова
JS Lab2017_Redux: время двигаться дальше?_Екатерина ЛизогубоваJS Lab2017_Redux: время двигаться дальше?_Екатерина Лизогубова
JS Lab2017_Redux: время двигаться дальше?_Екатерина Лизогубова
 
JS Lab2017_Евгений Сафронов_Тестирование Javascript кода. Инструменты, практи...
JS Lab2017_Евгений Сафронов_Тестирование Javascript кода. Инструменты, практи...JS Lab2017_Евгений Сафронов_Тестирование Javascript кода. Инструменты, практи...
JS Lab2017_Евгений Сафронов_Тестирование Javascript кода. Инструменты, практи...
 
JS Lab2017_Алексей Зеленюк_Сбалансированное окружение для вашей продуктивности
JS Lab2017_Алексей Зеленюк_Сбалансированное окружение для вашей продуктивностиJS Lab2017_Алексей Зеленюк_Сбалансированное окружение для вашей продуктивности
JS Lab2017_Алексей Зеленюк_Сбалансированное окружение для вашей продуктивности
 
JS Lab2017_Андрей Кучеренко _Разработка мультипакетных приложения: причины, с...
JS Lab2017_Андрей Кучеренко _Разработка мультипакетных приложения: причины, с...JS Lab2017_Андрей Кучеренко _Разработка мультипакетных приложения: причины, с...
JS Lab2017_Андрей Кучеренко _Разработка мультипакетных приложения: причины, с...
 
JS Lab2017_Виталий Лебедев_Практические сложности при разработке на node.js
JS Lab2017_Виталий Лебедев_Практические сложности при разработке на node.js JS Lab2017_Виталий Лебедев_Практические сложности при разработке на node.js
JS Lab2017_Виталий Лебедев_Практические сложности при разработке на node.js
 
JS Lab2017_Lightning Talks_Рекрутинг.js
JS Lab2017_Lightning Talks_Рекрутинг.js JS Lab2017_Lightning Talks_Рекрутинг.js
JS Lab2017_Lightning Talks_Рекрутинг.js
 
Frontendlab: Cравнить Несравнимое - Юлия Пучнина
Frontendlab: Cравнить Несравнимое  - Юлия ПучнинаFrontendlab: Cравнить Несравнимое  - Юлия Пучнина
Frontendlab: Cравнить Несравнимое - Юлия Пучнина
 
JS Lab2017_Lightning Talks_PostCSS - there is a plugin for that
JS Lab2017_Lightning Talks_PostCSS - there is a plugin for thatJS Lab2017_Lightning Talks_PostCSS - there is a plugin for that
JS Lab2017_Lightning Talks_PostCSS - there is a plugin for that
 
JS Lab2017_Алексей Заславский_React Fiber
JS Lab2017_Алексей Заславский_React Fiber JS Lab2017_Алексей Заславский_React Fiber
JS Lab2017_Алексей Заславский_React Fiber
 
JS Lab2017_Юлия Пучнина_PhaserJS и что он умеет
JS Lab2017_Юлия Пучнина_PhaserJS и что он умеетJS Lab2017_Юлия Пучнина_PhaserJS и что он умеет
JS Lab2017_Юлия Пучнина_PhaserJS и что он умеет
 
JS Lab2017_Роман Якобчук_Почему так важно быть программистом в фронтенде
JS Lab2017_Роман Якобчук_Почему так важно быть программистом в фронтенде JS Lab2017_Роман Якобчук_Почему так важно быть программистом в фронтенде
JS Lab2017_Роман Якобчук_Почему так важно быть программистом в фронтенде
 
JS Lab2017_Сергей Селецкий_System.js и jspm
JS Lab2017_Сергей Селецкий_System.js и jspmJS Lab2017_Сергей Селецкий_System.js и jspm
JS Lab2017_Сергей Селецкий_System.js и jspm
 
WebCamp 2016: Python.Максим Климишин.Типизированный Python
WebCamp 2016: Python.Максим Климишин.Типизированный PythonWebCamp 2016: Python.Максим Климишин.Типизированный Python
WebCamp 2016: Python.Максим Климишин.Типизированный Python
 
AI&BigData Lab 2016. Сергей Шельпук: Методология Data Science проектов
AI&BigData Lab 2016. Сергей Шельпук: Методология Data Science проектовAI&BigData Lab 2016. Сергей Шельпук: Методология Data Science проектов
AI&BigData Lab 2016. Сергей Шельпук: Методология Data Science проектов
 
Walking the tightrope between mediocracy and bankruptcy
Walking the tightrope between mediocracy and bankruptcyWalking the tightrope between mediocracy and bankruptcy
Walking the tightrope between mediocracy and bankruptcy
 

Semelhante a JS Lab2017_Lightning Talks_React Perfomance

React.js or why DOM finally makes sense
React.js or why DOM finally makes senseReact.js or why DOM finally makes sense
React.js or why DOM finally makes sense
Eldar Djafarov
 

Semelhante a JS Lab2017_Lightning Talks_React Perfomance (20)

Recompacting your react application
Recompacting your react applicationRecompacting your react application
Recompacting your react application
 
React lecture
React lectureReact lecture
React lecture
 
Higher Order Components and Render Props
Higher Order Components and Render PropsHigher Order Components and Render Props
Higher Order Components and Render Props
 
React 16: new features and beyond
React 16: new features and beyondReact 16: new features and beyond
React 16: new features and beyond
 
JSLab. Алексей Волков. "React на практике"
JSLab. Алексей Волков. "React на практике"JSLab. Алексей Волков. "React на практике"
JSLab. Алексей Волков. "React на практике"
 
React.js: You deserve to know about it
React.js: You deserve to know about itReact.js: You deserve to know about it
React.js: You deserve to know about it
 
React hooks
React hooksReact hooks
React hooks
 
React redux
React reduxReact redux
React redux
 
Integrating React.js with PHP projects
Integrating React.js with PHP projectsIntegrating React.js with PHP projects
Integrating React.js with PHP projects
 
Introduction to Redux
Introduction to ReduxIntroduction to Redux
Introduction to Redux
 
React.js or why DOM finally makes sense
React.js or why DOM finally makes senseReact.js or why DOM finally makes sense
React.js or why DOM finally makes sense
 
Why react matters
Why react mattersWhy react matters
Why react matters
 
Quick start with React | DreamLab Academy #2
Quick start with React | DreamLab Academy #2Quick start with React | DreamLab Academy #2
Quick start with React | DreamLab Academy #2
 
Intro to React | DreamLab Academy
Intro to React | DreamLab AcademyIntro to React | DreamLab Academy
Intro to React | DreamLab Academy
 
Higher-Order Components — Ilya Gelman
Higher-Order Components — Ilya GelmanHigher-Order Components — Ilya Gelman
Higher-Order Components — Ilya Gelman
 
Reactивная тяга
Reactивная тягаReactивная тяга
Reactивная тяга
 
React outbox
React outboxReact outbox
React outbox
 
React & Redux for noobs
React & Redux for noobsReact & Redux for noobs
React & Redux for noobs
 
React 101
React 101React 101
React 101
 
React new features and intro to Hooks
React new features and intro to HooksReact new features and intro to Hooks
React new features and intro to Hooks
 

Mais de GeeksLab Odessa

DataScience Lab2017_Коррекция геометрических искажений оптических спутниковых...
DataScience Lab2017_Коррекция геометрических искажений оптических спутниковых...DataScience Lab2017_Коррекция геометрических искажений оптических спутниковых...
DataScience Lab2017_Коррекция геометрических искажений оптических спутниковых...
GeeksLab Odessa
 
DataScienceLab2017_Cервинг моделей, построенных на больших данных с помощью A...
DataScienceLab2017_Cервинг моделей, построенных на больших данных с помощью A...DataScienceLab2017_Cервинг моделей, построенных на больших данных с помощью A...
DataScienceLab2017_Cервинг моделей, построенных на больших данных с помощью A...
GeeksLab Odessa
 
DataScienceLab2017_Высокопроизводительные вычислительные возможности для сист...
DataScienceLab2017_Высокопроизводительные вычислительные возможности для сист...DataScienceLab2017_Высокопроизводительные вычислительные возможности для сист...
DataScienceLab2017_Высокопроизводительные вычислительные возможности для сист...
GeeksLab Odessa
 
DataScience Lab 2017_Графические вероятностные модели для принятия решений в ...
DataScience Lab 2017_Графические вероятностные модели для принятия решений в ...DataScience Lab 2017_Графические вероятностные модели для принятия решений в ...
DataScience Lab 2017_Графические вероятностные модели для принятия решений в ...
GeeksLab Odessa
 
JS Lab 2017_Mapbox GL: как работают современные интерактивные карты_Владимир ...
JS Lab 2017_Mapbox GL: как работают современные интерактивные карты_Владимир ...JS Lab 2017_Mapbox GL: как работают современные интерактивные карты_Владимир ...
JS Lab 2017_Mapbox GL: как работают современные интерактивные карты_Владимир ...
GeeksLab Odessa
 

Mais de GeeksLab Odessa (19)

DataScience Lab2017_Коррекция геометрических искажений оптических спутниковых...
DataScience Lab2017_Коррекция геометрических искажений оптических спутниковых...DataScience Lab2017_Коррекция геометрических искажений оптических спутниковых...
DataScience Lab2017_Коррекция геометрических искажений оптических спутниковых...
 
DataScience Lab 2017_Kappa Architecture: How to implement a real-time streami...
DataScience Lab 2017_Kappa Architecture: How to implement a real-time streami...DataScience Lab 2017_Kappa Architecture: How to implement a real-time streami...
DataScience Lab 2017_Kappa Architecture: How to implement a real-time streami...
 
DataScience Lab 2017_Блиц-доклад_Турский Виктор
DataScience Lab 2017_Блиц-доклад_Турский ВикторDataScience Lab 2017_Блиц-доклад_Турский Виктор
DataScience Lab 2017_Блиц-доклад_Турский Виктор
 
DataScience Lab 2017_Обзор методов детекции лиц на изображение
DataScience Lab 2017_Обзор методов детекции лиц на изображениеDataScience Lab 2017_Обзор методов детекции лиц на изображение
DataScience Lab 2017_Обзор методов детекции лиц на изображение
 
DataScienceLab2017_Сходство пациентов: вычистка дубликатов и предсказание про...
DataScienceLab2017_Сходство пациентов: вычистка дубликатов и предсказание про...DataScienceLab2017_Сходство пациентов: вычистка дубликатов и предсказание про...
DataScienceLab2017_Сходство пациентов: вычистка дубликатов и предсказание про...
 
DataScienceLab2017_Блиц-доклад
DataScienceLab2017_Блиц-докладDataScienceLab2017_Блиц-доклад
DataScienceLab2017_Блиц-доклад
 
DataScienceLab2017_Блиц-доклад
DataScienceLab2017_Блиц-докладDataScienceLab2017_Блиц-доклад
DataScienceLab2017_Блиц-доклад
 
DataScienceLab2017_Блиц-доклад
DataScienceLab2017_Блиц-докладDataScienceLab2017_Блиц-доклад
DataScienceLab2017_Блиц-доклад
 
DataScienceLab2017_Cервинг моделей, построенных на больших данных с помощью A...
DataScienceLab2017_Cервинг моделей, построенных на больших данных с помощью A...DataScienceLab2017_Cервинг моделей, построенных на больших данных с помощью A...
DataScienceLab2017_Cервинг моделей, построенных на больших данных с помощью A...
 
DataScienceLab2017_BioVec: Word2Vec в задачах анализа геномных данных и биоин...
DataScienceLab2017_BioVec: Word2Vec в задачах анализа геномных данных и биоин...DataScienceLab2017_BioVec: Word2Vec в задачах анализа геномных данных и биоин...
DataScienceLab2017_BioVec: Word2Vec в задачах анализа геномных данных и биоин...
 
DataScienceLab2017_Data Sciences и Big Data в Телекоме_Александр Саенко
DataScienceLab2017_Data Sciences и Big Data в Телекоме_Александр Саенко DataScienceLab2017_Data Sciences и Big Data в Телекоме_Александр Саенко
DataScienceLab2017_Data Sciences и Big Data в Телекоме_Александр Саенко
 
DataScienceLab2017_Высокопроизводительные вычислительные возможности для сист...
DataScienceLab2017_Высокопроизводительные вычислительные возможности для сист...DataScienceLab2017_Высокопроизводительные вычислительные возможности для сист...
DataScienceLab2017_Высокопроизводительные вычислительные возможности для сист...
 
DataScience Lab 2017_Мониторинг модных трендов с помощью глубокого обучения и...
DataScience Lab 2017_Мониторинг модных трендов с помощью глубокого обучения и...DataScience Lab 2017_Мониторинг модных трендов с помощью глубокого обучения и...
DataScience Lab 2017_Мониторинг модных трендов с помощью глубокого обучения и...
 
DataScience Lab 2017_Кто здесь? Автоматическая разметка спикеров на телефонны...
DataScience Lab 2017_Кто здесь? Автоматическая разметка спикеров на телефонны...DataScience Lab 2017_Кто здесь? Автоматическая разметка спикеров на телефонны...
DataScience Lab 2017_Кто здесь? Автоматическая разметка спикеров на телефонны...
 
DataScience Lab 2017_From bag of texts to bag of clusters_Терпиль Евгений / П...
DataScience Lab 2017_From bag of texts to bag of clusters_Терпиль Евгений / П...DataScience Lab 2017_From bag of texts to bag of clusters_Терпиль Евгений / П...
DataScience Lab 2017_From bag of texts to bag of clusters_Терпиль Евгений / П...
 
DataScience Lab 2017_Графические вероятностные модели для принятия решений в ...
DataScience Lab 2017_Графические вероятностные модели для принятия решений в ...DataScience Lab 2017_Графические вероятностные модели для принятия решений в ...
DataScience Lab 2017_Графические вероятностные модели для принятия решений в ...
 
DataScienceLab2017_Оптимизация гиперпараметров машинного обучения при помощи ...
DataScienceLab2017_Оптимизация гиперпараметров машинного обучения при помощи ...DataScienceLab2017_Оптимизация гиперпараметров машинного обучения при помощи ...
DataScienceLab2017_Оптимизация гиперпараметров машинного обучения при помощи ...
 
DataScienceLab2017_Как знать всё о покупателях (или почти всё)?_Дарина Перемот
DataScienceLab2017_Как знать всё о покупателях (или почти всё)?_Дарина Перемот DataScienceLab2017_Как знать всё о покупателях (или почти всё)?_Дарина Перемот
DataScienceLab2017_Как знать всё о покупателях (или почти всё)?_Дарина Перемот
 
JS Lab 2017_Mapbox GL: как работают современные интерактивные карты_Владимир ...
JS Lab 2017_Mapbox GL: как работают современные интерактивные карты_Владимир ...JS Lab 2017_Mapbox GL: как работают современные интерактивные карты_Владимир ...
JS Lab 2017_Mapbox GL: как работают современные интерактивные карты_Владимир ...
 

Último

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 

Último (20)

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 

JS Lab2017_Lightning Talks_React Perfomance