solid
solid copied to clipboard
feat: `createServerValue`
Summary
This is a PoC for exploring the new serialization method. This PR adds a new primitive called createServerValue
which allows users to instanciate server-side values and load those exact values on hydration. This is like resumability for babies.
A great use case of this would be:
// Without createServerValue, this will throw a hydration error 99.9% of the time.
const someRandomData = createServerValue(() => Math.random());
return <h1>Data: {someRandomData}</h1>;
By default, createServerValue
should be able to serialize everything the createResource
is capable of (as of course they share the same serializer), with the exception of createServerValue
having non-blocking serialization assuming that it produces a Promise
. This is, of course, is up for debate.
This might also be in conflict with the upcoming async primitive.