More Related Content Similar to Mobx - performance and sanity (20) Mobx - performance and sanity8. Easy as pie
import service from ‘myService’;
// call service.action()
// use service.state
Problem Solved!
23. Michel Weststrate from Mendix
React + Angular connectors
Automagically react to changes
Works with plain objects
MobX
24. Michel Weststrate from Mendix
React + Angular connectors
Automagically react to changes
Works with plain objects
MobX
29. import { observable } from 'mobx';
class Store {
@observable filter = '';
@observable items = [];
}
Observable
31. import { computed } from 'mobx';
@computed get filteredItems() {
const regexp = new RegExp(this.filter, 'i');
return this.items
.filter((item) => regexp.test(item.name));
}
…
Computed
32. …
@computed get filteredItems() {
const regexp = new RegExp(this.filter, 'i');
return this.items
.filter((item) => regexp.test(item.name));
}
…
Figures dependencies automatically
37. class Store {
@observable filter = '';
@observable items = [];
@computed get filteredItems() {
const regexp = new RegExp(this.filter, 'i');
return this.items.filter((item) => regexp.test(item.name));
}
@action setFilter(value) {
this.filter = value;
}
@action addItem(item) {
this.items.push(item);
}
}
42. class TodoView extends React.Component {
render() {
return <div>{ store.filteredItems }</div>
}
}
mobx-react
https://github.com/mobxjs/mobx-react
43. @observer class TodoView extends React.Component {
render() {
return <div>{ store.filteredItems }</div>
}
}
mobx-react
https://github.com/mobxjs/mobx-react
47. MobX Redux
Plain objects
OOD
Immutable data
FP
Automatic Explicit
Computed values Using reselect
Multiple Stores Single Store
Use Async regularly Async is trouble
Complex library, Simple code Simple library, Complex code