feat: new @memo and @effect decorators from updated classy-solid
#56
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
See
classy-soliddocs for info.Small example:
The Element base class will ensure that effects will be cleaned up on disconnect, and restarted on connect by calling classy-solid's
stopEffects()andstartEffects()functions inconnectedCallbackanddisconnetedCallback.BREAKING:
stopEffects()method of@lume/element'sElementbase class is removed.stopEffects()for customized management of starting and stopping effects, instead use theEffectsclass fromclassy-solidto manage your own set of effects separately from those that theElementbase class manages.Old code:
@effectorthis.createEffect()are managed by theElementbase class.The new
clearEffects()method fromclassy-solid'sEffectful()mixin orEffectsclass deletes previous effects, and thecreateEffect()method will create new ones. ThestopEffects()method fromclassy-solidstill exists (that's what the method from theElementbase class used to be), but it does not delete effects, and instead holds a list of all previously created effects such that the newstartEffects()method can be used to start all effects after they've been stopped. The above code can also be writte like so, without re-creating all the effects:New code, 2nd version: