Оптимальный
во всех смыслах


Татьяна Бабич
Роман Фазульянов
Руководитель Frontend - направления
Ведущий эксперт







Development speed


ES2015

Virtual DOM

JSX

Components development

REACT - only View

Business logic

DATA FLOW

IDE
Нуждается ли REACT в оптимизации?


А как насчет подхода к разработке и кода?


ES2015 + IDE
import React from 'react';
class Test extends React.Component {
props;
state = {
greeting: 'Hello'
};
render() {
return <div>{this.state.greeting},
{this.props.name}</div>;
}
}
Test.defaultProps = {
name: 'Roman'
} import React from 'react';
class Test extends React.Component {
/** @type {TestProps} */
props;
static defaultProps = new TestProps();
/** @type {TestState} */
state;
constructor(props) {
super(props);
this.state = new TestState();
//стейт для конкретного экземпляра
}
render() {
return <div>{this.state.greeting},
{this.props.name}</div>;
}
} Хранение данных
store
state
this

DATA FLOW
dispatch({
type: types.CLEAR_RESULTS
});
dispatch({
type: types.CLEAR_CURRENT_MODEL
});
dispatch({
type: types.CLEAR_CURRENT_SELECTED
});
dispatch({
type: types.SHOW_LOADER
});dispatch({
type: types.START_NEW_SEARCH
});
setState
onChange = (event) => {
/** @type {EditState} */
var state = /** @type {EditState} */{};
state.isPure = false;
this.setState(state);
};onChange = (event) => {
if(this.state.isPure) {
/** @type {EditState} */
var state = /**@type {EditState}*/{};
state.isPure = false;
this.setState(state);
}
};*.bind(this)
onClick(event) {/*код*/};
render() {
return (
<div
onClick={(event) =>
this.onClick.bind(this)(event)}>
{this.props.children}
</div>
);
}onClick(event) {/*код*/};
constructor(props) {
super(props);
this.onClick =
this.onClick.bind(this);
}
render() {
return (
<div onClick={this.onClick}>
{this.props.children}
</div>
);
} onClick = (event) => {
/*код*/
};Facebook way
Best way
No comments way
*.bind(this)
Facebook way
Best way
No comments way



и еще пара плюшек


Спасибо за внимание!
Татьяна Бабич
simbirsoft.com
Роман Фазульянов
tatyana.babich@simbirsoft.com
https://slides.com/tatyana_babich/react_way/

Оптимальный во всех смыслах
By tatyana_babich
Оптимальный во всех смыслах
- 1,593