betagouv / ma-cantine

Accompagner les acteurs restau co dans la loi EGalim
https://ma-cantine.beta.gouv.fr/
MIT License
14 stars 9 forks source link

[PERF] Remplacement plus léger de ApexCharts #2894

Open alemangui opened 1 year ago

alemangui commented 1 year ago

ApexCharts est très lourd (0.5Mb minimifié) et ils n'ont pas l'intention de permettre un import modulaire (https://github.com/apexcharts/apexcharts.js/issues/567). On utilise très peu de graphes, on devrait pouvoir le remplacer par une libraire plus légère.

hfroot commented 1 year ago

Dans la même discussion, il y a une comparaison de libraries : https://github.com/apexcharts/apexcharts.js/issues/567#issuecomment-499695952

Les plus petits sont Chart.js et Highcharts. Perso j'utilise Chart.js sur un autre projet et c'est pas mal.

Selon le site, Chart.js a le support pour tree-shaking https://www.chartjs.org/docs/latest/getting-started/integration.html#bundle-optimization, qui existe aussi pour l'integration vue : https://github.com/apertureless/vue-chartjs/issues/917

Highcharts a une integration avec vue : https://www.highcharts.com/integrations/vue/

D'ailleurs on pourrait faire des améliorations d'a11y si on refait les charts, en utilisant des conseils d'ici (c'est pour D3 mais les bases sont reutilisable ) : https://fossheim.io/writing/posts/accessible-dataviz-d3-intro/