Le don du mois: mobx 2 Recently updated !
lundi 2 juillet 2018 à 12:41Si vous avez suivi un peu les différents dons du mois au fur et à mesure de la vie du blog, vous avez du vous rendre compte de 2 choses:
- Le don du mois n’est pas mensuel. Il est juste limité à un par mois. Ça m’évite la pression d’être un bon samaritin. Sauf que du coup, j’oublie parfois pendant trèèèèèèès longtemps :)
- Il n’y a pas beaucoup de projets JS dans le lot. Ahem.
En fait le seul et unique projet JS supporté a été VueJS. C’est dire que la barre est haute, étant donné la qualité exceptionnelle de ce projet.
Donc quand je vous dis que j’ai donné 50 balles à Mobx, c’est que le projet déchire. Et il déchire malgré le fait qu’il soit codé en JS.
Mobx permet, en gros, de surveiller les modifications à une structure de données. Vous posez un marqueur sur la structure, et un sur les fonctions utilisant la structure, et c’est tout:
class TodoList { @observable todos = []; // dire à mobx de surveiller } ... @observer // dire à mobx de tenir à jour class TodoListView extends Component { render() { return <ul> {this.props.todoList.todos.map(todo =>)} </ul> } |
C’est là la brillance du système: malgré sa simplicité, mobx va récursivement réagir à toute modifications, même sur des données complexes imbriquées; Et calculer toutes les dépendances de chaque fonction pour ne les appeler qu’au meilleur moment.
C’est facile à utiliser, et étonnamment rapide à exécuter.
Le résultat ? Quand un client me force à utiliser ReactJS, je saute redux, et je met Mobx à la place. Ca donne presque l’impression d’utiliser Vue: le code de manipulation d’état est simple à comprendre, gentil sur le CPU et les mutations d’état restent courtes et élégantes. Le reste est toujours moche, mais ça on y peut rien.
Bref, mobx est ce qui rend react acceptable. Et tout ce qui peut apaiser la douleur du dev en front-end n’a pas de prix.
J’ai regardé le code source, et la popote interne est bien complexe. Mais à chaque fois que je veux l’utiliser je me dis que ça ne pourra pas être si simple… et si.
La page de don, c’est par là.