Implementation of Listener
.
Implementation of Listener
.
Subclasses can broadcast data of type A via the broadcast
method.
Provides a component with safe R/W access to an external variable.
Provides a component with safe R/W access to an external variable.
Use ReusableVar for a reusable version of this.
External entities can register with this to listen (receive) data of type A.
External entities can register with this to listen (receive) data of type A.
Install in ReactComponentB
via .configure(Listenable.install...)
.
Accrues procedures to be run automatically when its component unmounts.
Accrues procedures to be run automatically when its component unmounts.
Install in ReactComponentB
via .configure(OnUnmount.install)
.
A mechanism for caching data with dependencies.
A mechanism for caching data with dependencies.
This is basically a performance-focused, lightweight implementation of pull-based FRP, pull-based meaning that in the chain A→B→C, an update to A doesn't affect C until the value of C is requested.
What does Px mean? I don't know, I just needed a name and I liked the way @lihaoyi's Rx type name looked in code.
You can consider this "Performance eXtension". If this were Java it'd be named
AutoRefreshOnRequestDependentCachedVariable
.
Tests whether one instance can be used in place of another.
Tests whether one instance can be used in place of another. Used mostly to compare properties and state of a component to avoid unnecessary updates.
If you imagine a class with 8 fields, equality would compare all 8 fields where as this would typically just compare the ID field, the update-date, or the revision number. You might think of this as a very quick version of equality.
Don't miss Reusability.shouldComponentUpdate
which can be applied to a component via ReactComponentB.configure
.
0.9.0
A function that facilitates stability and reuse.
A function that facilitates stability and reuse.
In effective usage of React, callbacks are passed around as component properties. Due to the ease of function creation in Scala if it often the case that functions are created inline and thus provide no means of determining whether a component can safely skip its update. This class exists as a solution.
0.9.0
A ReusableFn from A
to B
, paired with a value of A
.
A ReusableFn from A
to B
, paired with a value of A
.
Ideally this would be ReusableFn0[B]
without needing the A
(a reusable version of () => B
)
but the overhead to reliably create such a construct is annoyingly high and not worth it.
A value explicitly being marked as reusable.
A value explicitly being marked as reusable.
Usually reusability is determined by type (ie. via an implicit Reusability[A]
available for an A
).
Instead, this type promises that reusability will be explicitly provided with each value.
Reusable version of ExternalVar.
Alternatives to window.setTimeout
/window.setInterval
that automatically unregisters installed callbacks
when its component unmounts.
Alternatives to window.setTimeout
/window.setInterval
that automatically unregisters installed callbacks
when its component unmounts.
Provides interval methods that guarentee duration between callbacks. Regular use of setInterval
is fine
for callbacks with determined execution time. However, if your callback could possibly take as long or longer
than your timeout
, you can end up with callbacks firing back to back.
Install in ReactComponentB
via .configure(TimerSupport.install)
.
Installing this will cause logging to occur at React component lifecycle stages.
Installing this will cause logging to occur at React component lifecycle stages.
Install in ReactComponentB
via .configure(LogLifecycle.short)
or .configure(LogLifecycle.verbose)
.
Heavily inspired by https://github.com/redsunsoft/react-render-visualizer