Bloomca / veles

UI library with main focus on performance
https://bloomca.github.io/veles/
MIT License
40 stars 0 forks source link

Use value activate onmount #57

Closed Bloomca closed 3 weeks ago

Bloomca commented 3 weeks ago

Description

Change how we add subscription to state changes when using useValue/useValueSelector. Before the subscription was activated immediately, but it created a problem that you could create a component, not mount it, and the value would still update the node inside (although only if it was not top-level).

It also would never unsubscribe, because there was no unmount event. This PR adds a subscription only when we actually mount the component, and update the value if it is different.

This is a part of https://github.com/Bloomca/veles/issues/45, but it doesn't close it fully, because useValueIterator and trackValue have the same issue, I'll address them separately (the PR is already quite big).