Содержание
-
React
Скрытые угрозы
-
SmartJS.Academy xanf_ua
-
История мира JavaScript
-
Экосистема
react-modal react-tabs react-autocomplete
-
П Feature coverage
Server-Side rendering Canvas / WebGL / etc. Mobile (React Native) JSX & Tools
-
П Парадигма
Component State Props Component 2 Component 3 Component 4 Component 5 Component 6 Component 7 Containers Context Store Actions Middleware Provider
-
П Дьявольски быстрый
Virtual DOM shouldComponentUpdate
-
П connect
connect( ({ users, fav}) => ({ users, fav }), { loadUsers} )(FriendsList) { loadUsers, markFavorite} { loadUsers, markFavorite, select, clear } (dispatch) => ({ actions: { loadUsers, markFavorite, select, clear }})
-
П shouldComponentUpdate
shouldComponentUpdate(nextProps, nextState){ returntrue; return!shallowE(this.props,nextProps)|| !shallowE(this.state,nextState); } { actions: { a: function, b: function }}
-
П connect #2
connect( )(FriendsList) { users, fav }) => ({ // список пользователей users, // список любимых id fav, } { users, fav }) => ({ users, favoriteUsers: users.filter(u => fav.contains(u.id) ) }
-
П M: Memoization
reselect export constfavSelector = createSelector( state => state.users, state => state.fav, ( users, fav ) => users.filter( u => fav.contains(u.id) ) ) ; connect(state) => ({ state.users, favoriteUsers: favSelector(state) })
-
П ::bind
handleClick({target}) { this.props.setChecked(target.value); } } render() { //... handleClick = ({target}) => { this.props.setChecked(target.value); }
-
П ::bind #2
handleClick= name => value => { this.props.setFilter({[name]: value}); }
-
П M: Memoization
render не должен порождать новых сущностей новые сущности очень коварны [ ], { } тестируйте свои компоненты
-
П redux
Action 1 Action 2 Action 3 action creators middlewares reducers
-
П ?: ???
redux-sagas? redux-thunk? redux-side-effects? redux-effects?
-
П Слежение
const Perf = require(‘react-addons-perf’); Perf.start(); Perf.end(); Perf.printWasted();
-
Вопросы?
Нет комментариев для данной презентации
Помогите другим пользователям — будьте первым, кто поделится своим мнением об этой презентации.