News for hackers. Stuff that matters.
Re:Restoring React reducer state across browser sessions by dmix on Tuesday April 21, 2020 @03:24AM (#22932792)
> Our actual solution is to store the state in our server-side database. This feels wrong at first glance: we're storing a client-side React component's state as an opaque JSON blob in our server-side database, and we're doing that knowing that some of those JSON blobs will go out of date and be unusable in the future. But io-ts and the type system keep us honest here! And this is a convenience feature, so we can always change it later, even if that means throwing away all of the saved states. (When a user finishes a lesson, that record is stored in a separate part of the database.)

That seems very... bold. That said, I could see this being useful for more ephemeral situations where it's okay to not be entirely in sync with the server. Like the user signup example: multi-step forms, or some create-only or override-always sort of arrangement, or maybe some filters for some sorting/slicing data tables, etc.

It's then useful for not being jittery on load + not storing half-baked data just to have semi-persistence of incomplete forms. Quickly rendering existing state is always a win, without resetting it then loading the updated position.

Otherwise I could see this introducing a lot of race conditions and additional work being done post-load to clean up the data.

Since there's a relatively short line here where it just makes sense to rebuild the state, it's probably preferable to utilize this for smaller isolated parts of the site, like a single form's data, instead of the wider state. But still an interesting approach none-the-less, made easier with the reducer pattern...

Re:Restoring React reducer state across browser sessions by gary_bernhardt on Tuesday April 21, 2020 @03:23PM (#22938429)
We only use it for resuming partially-finished lessons, so we're using it in basically the way that you describe. Overall course progress is tracked in a totally different way.
Re:Restoring React reducer state across browser sessions by sdegutis on Tuesday April 21, 2020 @11:06AM (#22935543)
> That seems very... bold.

It's just traditional server-side sessions. Just done more complicatedly to work around React's architecture.