DEV Community

Cover image for Derivations in Reactivity

Derivations in Reactivity

Ryan Carniato on January 19, 2024

There is a reason why the first time you learn about a reactive system the example always looks something like this: let name = state("John"); ...
Collapse
 
redbar0n profile image
Magne This is Learning • Edited

I think perhaps the insight that led to Push-Pull systems could be summarized as: start from where you are, and work outwards from there.:

  • When setting up you are at the top, so you push from there.
  • When reacting, you are at the bottom, so pull from there (effectively using a DFS going upwards).

Alternatively: Reactivity is best treated as a graph (any starting point), not a tree (with a fixed root to always start from).

Collapse
 
artydev profile image
artydev

Thank you Ryan.

Collapse
 
ashishsimplecoder profile image
Ashish Prajapati

This is so deep

Collapse
 
sharmi2020 profile image
Sharmila kannan

Nice article learnt new things and Terminologies in react like push(scheduling)and pull(events)

Collapse
 
redbar0n profile image
Magne This is Learning

It’s opposite: push events and schedule pulling.

Collapse
 
kumneger profile image
Kumneger0

awesome article
Thanks Ryan

Collapse
 
atila profile image
Atila Fassina

This article is gold 🏆

Reading this article made a lot of things click for me when dealing with the tradeoffs of Push/Pull/Push-Pull systems

Collapse
 
artydev profile image
artydev • Edited

If I could, I would build an ELM like library based on SolidJS...

Collapse
 
caburj profile image
Joseph Caburnay

You should try. I'd like to see such system.

Collapse
 
artydev profile image
artydev • Edited

:-), I don't have enough time.
If you like such system you can look at : [APPRUN]((apprun.js.org/).
Regards

Collapse
 
soliman_2 profile image
jiwoo-choi

Hi Ryan,

I’d love to introduce these 3 articles to the Korean frontend communities.
To do that, I’d like to translate them and publish the translations on the Korean FE Substack(kofearticle.substack.com/).

This will be non-commercial, and I’ll make sure to include the original link at the top of each translated version.

Would that be okay with you?