dans react-1 on peut faire ce filtre directement dans render()
filtrage par année (avec un bouton par année distincte disponible -- encore ce filtre peut être directement dans render dans react-1)
filtrage des confs sélectionnées (une checkbox détermine si on affiche que les confs sélectionnées ou pas) -- avec sauvegarde en localStorage
pour la récupération de agenda.json, je crois que pour ça on devrait le récupérer toutes les 5 secondes avec un appel fetch. Dans react-1 on mettrait à jour le state directement sans vérifier s'il change et ça triggererait toujours un reflow quand on passera à ReactComponent. Théoriquement ça change jamais dans notre cas, mais c'est un usage courant tout de même.
... penses-tu à autre chose ? Je crois que c'est déjà pas mal. Le but étant d'avoir plusieurs états différents, pour montrer l'intérêt futur des selectors mémoisés, des filtres pour aussi montrer que si rien ne change on ne devrait rien modifier.
react-2
problèmes:
toutes les 5 secondes il y a un rendu
le render est coûteux et ça se voit dans un profil
solutions:
ne pas faire de setState si la récupération de agenda.json donne le même fichier
stocker le résultat des filtres dans le state pour éviter de le faire dans render
react-3
problème: quand on rend les items, ils sont rerendus entièrement même si rien ne change
solutions:
transformer la liste des années (pour le filtre du haut) en PureComponent
transformer les ListItems en PureComponent ou shouldComponentUpdate
react-4
problème: lorsqu'on filtre, les items sont rerendus entièrement
solutions:
ajouter des key
react-5
(j'aimerais bien trouver le problème qui irait avec la transformation de PresentationList en PureComponent, et pouvoir parler de l'immutabilité de notre liste sélectionnée, mais je trouve pas: a priori on voudra bien rerendre la liste à chaque setState, non ?)
redux-1
conversion de l'application avec redux, en mode assez basique (sans reselect)
Je pense avoir fait à peu près tout dans react-1, sauf le localStorage.
Si tu acceptes les PR il faudrait ensuite les reporter dans react-2 et continuer...
react-1
Les fonctions manquantes dans react-1 selon moi:
react-2
problèmes:
solutions:
react-3
problème: quand on rend les items, ils sont rerendus entièrement même si rien ne change
solutions:
react-4
problème: lorsqu'on filtre, les items sont rerendus entièrement solutions:
react-5
(j'aimerais bien trouver le problème qui irait avec la transformation de PresentationList en PureComponent, et pouvoir parler de l'immutabilité de notre liste sélectionnée, mais je trouve pas: a priori on voudra bien rerendre la liste à chaque setState, non ?)
redux-1
conversion de l'application avec redux, en mode assez basique (sans reselect)
redux-2
utilisation de reselect
qu'en penses-tu ?