A declarative, efficient, and flexible JavaScript library for building user interfaces.
MIT License
Bot releases are hidden (Show)
Published by ryansolid almost 5 years ago
A lot fixes and new features:
SuspenseList
, useTransition
, trigger on read. Update API, and added reload
and retry capability. Removed need for awaitSuspense
by making Show
and Switch
control flows Susepnse
aware.Show
control flow for simple inline JSX conditionals like <div>{state.count > 5 && <MyComp />}</div>
.map(() => state.list, item => item)
children
props.Published by ryansolid almost 5 years ago
v0.14.0 brings changes to the render runtime and setState
API
setState
API inspired by Immer. Function setters in Solid now pass a mutable version of state. Modifying will schedule updates. This form must not return a value. It can still be used immutably simply by returning the new value.force
and reconcile
helpers work. They can now be used on nested paths.setState
.Published by ryansolid almost 5 years ago
v0.13.0 contains large changes to the reactive system and compiler.
The main update is to simplify reactivity by removing computation recycling. While this was a useful feature to avoid unnecessary computation nodes, Solid now uses batching as a different approach to get similar results. Most templating libraries can offer breakneck update speeds without fine-grained updates. The real cost of these top-down approaches is the need to redo structural reconciliation. The current approach is that different computations will be created for each:
To aid in performance simple text inserts the textContent
binding is now optimized so they can be batched.
In addition, there are some improvements to template cloning and SVG handing in SSR.
Published by ryansolid about 5 years ago
v0.12.0 contains a breaking change to the reactive rendering system
{( )}
, bindings will default to reactive unless impossible to be so (literal, function declaration, simple variable)Published by ryansolid about 5 years ago
v0.11.0 continues to add updates to the reactive system as well as some new features:
awaitSuspense
)Published by ryansolid about 5 years ago
v0.10.0 makes significant changes to the reactive system. Key updates:
createMemo
.delayMs
to maxDuration
to match React. (Usage of maxDuration
still experimental)Published by ryansolid about 5 years ago
This is a big one. It includes the Control Flow Refactor described in #42. It brings Solid up to date with the latest version JSX DOM Expressions. Read the release notes here. What this means:
createMemo
so that the value is remembered between inserts.map
operator. I've added pipe
and reduce
as well. These are very basic but can serve as a basis for users to create Functional operators. They are in the same vein as RxJS pipe-able operators.insert
from solid-js/dom
instead of just appending the returned element. solid-js/dom
now exports render
for convenience which does both the insert
and automatically wraps it with createRoot
. This syntax is based on React's render.<$>
tag. New Control Flow also now has explicit type defs. JSX Children are now handled consistently with react.There have been several small changes, but those are the highlights. Bear with me as I update all the examples over the next few days.
Published by ryansolid over 5 years ago
v0.8.0 brings further improvements in reducing bundle size and optimizations in reactivity. New Features:
Published by ryansolid over 5 years ago
This release fully internalizes the reactive library in Solid. This will allow further optimizations in the future as well as reducing generated bundle size even further. This release also fixes several bugs around using Context API's with Solid Element.
Published by ryansolid over 5 years ago
v0.7.0 brings further improvements in tree shaking, Context API including Provide control flow, and suspense helpers for loading Async Components and Data. Introducing:
There is also performance improvements where the number extraneous placeholder DOM nodes has been reduced improving cloning and traversal time.
This is a breaking change as in order to support this version, Solid has forked S.js the underlying library and now ships with it built in. This means Solid will no longer be compatible other S.js libraries. It is a turning point but enables the powerful new features.
In terms of API there is also a breaking change, where if you wish to specify dependencies for an effect use createDependentEffect. createEffect now has the same signature as createMemo where the second argument is a default value.
Published by ryansolid over 5 years ago
v0.6.0 brings a Tree Shakeable runtime. This means when Solid used with JSX the compiler can intelligently only include the code that is being used.
This is a breaking change in that:
import html from 'solid-js/html'
Published by ryansolid over 5 years ago
Migration to TypeScript.
Thank you @neodon and @r0skar for helping out on this one. This is still early days for TypeScript implementation so looking for review and improvements.
Published by ryansolid over 5 years ago
Breaking Change h is no longer exposed from 'solid-js/dom'
Add support for multiple renderers (JSX, Tagged Template Literals, HyperScript). Added direct imports or 'solid-js/dom' alternatives 'solid-js/html' and 'solid-js/h'.
New Tagged Template Literal renderer compiles at runtime down to similar code to Babel JSX plugin.
Published by ryansolid over 5 years ago
Several updates to the underlying renderer: