Byteclaw / visage

Visage design system
https://visage.design
MIT License
12 stars 3 forks source link

New cache system #684

Open michalkvasnicak opened 3 years ago

michalkvasnicak commented 3 years ago

By default visage should encourage developers to memoize styles prop so it'd be better to make styles prop immutable (uses ref to store the first reference to styles object and doesn't react to its changes). Also we can introduce a prop that says that the styles prop should be mutable ( default false ).

Also cache needs to be simplified, now the code is terrible. With babel plugin we can cache everything much easier because styles are hoisted (the ones that can be). With immutable styles prop it's little bit harder because we still need to serialize styles to know their hash quickly. Maybe we could leverage some cache id counter that can be used instead, so we don't need to check for equality of object.