Mutable Signals - Reactivity's Missing Link

Поділитися
Вставка
  • Опубліковано 21 лис 2024

КОМЕНТАРІ • 17

  • @stefanmaric
    @stefanmaric 12 днів тому +13

    Love when Ryan says "right", "that's a good point", etc while reading his own notes like if he was reviewing his alter ego.

  • @zombiefacesupreme
    @zombiefacesupreme 10 днів тому +10

    [0:00:00] Preamble
    [0:09:15] Aside: Framework Trickery with The Event Loop
    [0:21:15] Aside: Cancellable Promises
    [0:26:15] Mutable Derivations in Reactivity: Introduction
    [0:30:15] MDiR: At Their Core, Signals Are Immutable
    [0:39:00] MDiR: (World) Beyond Components & Compiler Limitations
    [0:48:00] MDiR: Reducing Operations & Signals vs. Streams
    [0:57:00] MDiR: Nested Signals & Nested Effects
    [1:04:00] MDiR: Proxies & Reactive Stores
    [1:13:00] MDiR: Immutable Updates vs. Mutable Change
    [1:19:00] MDiR: Revisiting Derivations - state = fn(state)
    [1:25:15] MDiR: Following the Shape - The Getter/Setter Pyramid
    [1:29:15] MDiR: A Getter-Setter (Linked Signals)
    [1:35:15] MDiR: createWritable & Higher-Order Signals
    [1:41:15] MDiR: Derived Signals Through createSignal
    [1:49:15] MDiR: The Problem With Diffing
    [1:56:15] MDiR: Exploring Projections & "The Grand Unifying Theory"
    [2:06:00] Intermission 1
    [2:11:00] Exploring Mutable Reactivity: Introduction
    [2:15:00] EMR: The .map function
    [2:25:15] EMR: Templating Is a Map Function - Key by Index
    [2:36:00] EMR: TIaMF - Explicit Key
    [2:46:30] EMR: TIaMF - Key by Reference
    [2:50:45] EMR: TIaMF - Repeat & Concluding Thoughts on Control Flow
    [3:03:30] EMR: The .reduce function
    [3:10:00] EMR: The .filter function
    [3:18:45] EMR: Conclusion & Why createAsync Doesn't Have .loading
    [3:26:15] Fixing Reconcile/Stores: Understanding the Challenges
    [3:29:00] FR/S: UtC - Cloning Internals
    [3:37:15] FR/S: UtC - uibench (UI Benchmark)
    [3:40:30] FR/S: UtC - Structured Operations
    [3:44:00] FR/S: Finding A Solution (Cloning on Write?)
    [3:50:45] FR/S: CODE - Playground Examples
    [4:03:45] FR/S: Defining A Diff Format (Immutable)
    [4:09:15] FR/S: Conclusion
    [4:19:45] Nature of Async: Lazy Async Causes Waterfalls
    [4:27:15] NoA: Async Tearing is Wasteful
    [4:31:30] NoA: Suspense is Necessary & .latest / resolveSync
    [4:36:15] NoA: Conclusion
    [4:46:00] Intermission 2
    [4:48:00] This Week in JavaScript: Solid News - SolidHack
    [4:51:30] TWiJ: Solid News - SolidJS Book & Solid Desktop
    [4:58:00] TWiJ: Solid News - Benchmarks on The Solid Site
    [5:00:15] TWiJ: Early Returns - Introduction & Reading the Article
    [5:03:30] TWiJ: Early Returns - This Is Not Great
    [5:07:30] TWiJ: Early Returns - Syntax & Readability
    [5:15:00] TWiJ: Early Returns - Conclusion
    [5:24:30] TWiJ: Solid Runes / solid-labels
    [5:29:45] TWiJ: Syntax is Overrated (Vue Vine & "Copying React")
    [5:40:00] TWiJ: "Svelte Has No Future"
    [5:48:00] Conclusion

    • @bigmistqke
      @bigmistqke 10 днів тому +2

      Thanks zombie 🧟‍♂️

  • @luka1790
    @luka1790 10 днів тому +1

    Yes, I love this idea about the new create signal at 1:47:00 !

  • @mfpears
    @mfpears 13 днів тому +2

    4:42:00 I like the pattern of "when you listen to it" just being in components. Because you want to get those values in event handlers too, and everywhere in the component. If you have some conditionally rendered stuff reading from the observable's resulting state, you will be subscribing early, but to me that is tolerable.
    The issue I've been struggling with is when you have some derived state that you then want to move out and share between multiple components without refactoring, and also while keeping observables cold. The trick is they depend on the `from` or `createAsync`, so if that's moved out of the component, it will stay subscribed forever. I have some ideas involving various kinds of wrapping, but I haven't had time to flesh them out.

  • @lifespell-omega
    @lifespell-omega 9 днів тому +1

    what are your thoughts on the swift ui pattern? not necessarily in the context of js/ts, but just in general.

  • @snnsnn
    @snnsnn 3 дні тому

    4:51:37 Hi! The author is here! 😊
    I want to thank you for mentioning the book. I’ve been on a much-needed break that I had postponed to focus on finishing the book, so I’m only getting a chance to write this now. Thank you for the kind gesture-it really means a lot! It’s truly heartwarming to see the SolidJS community grow, and I deeply appreciate your effort in sharing valuable content.
    🤔For those who are interested in the book: My goal was to create a focused, practical guide to learning SolidJS, which truly helps you cut down on the time 🕗 it takes to learn SolidJS. Having closely followed the evolution of SolidJS through streams and community articles, I wanted to distill all that knowledge into a concise and accessible format. The book is designed to help you spend less time figuring things out and more time building. 🧑‍💻🧑‍💻🧑‍💻
    Cheers! 🎉📘✨

  • @mfpears
    @mfpears 13 днів тому +3

    5:11:11 LOL I love you

  • @mfpears
    @mfpears 13 днів тому +2

    5:06:55 Bingo

    • @mfpears
      @mfpears 13 днів тому +1

      And, syntax doesn't matter (very much).

  • @zapphoddbubbahbrox5681
    @zapphoddbubbahbrox5681 13 днів тому +2

    still at 720 and cannot read most of this screen info

    • @zombiefacesupreme
      @zombiefacesupreme 12 днів тому +1

      This genuinely puzzles me, and I honestly don't believe you. I watch this on my small cell phone screen and I can read all of the text.
      Can you give me a timestamp for an example of some text that you can't read?

    • @zapphoddbubbahbrox5681
      @zapphoddbubbahbrox5681 10 днів тому +1

      @@zombiefacesupreme - well I'm older with not great vision, so there's that.

    • @zombiefacesupreme
      @zombiefacesupreme 10 днів тому +1

      @@zapphoddbubbahbrox5681 I apologize. My comment was rude and unnecessary. Have a good night. 🙂

  • @aviral2759
    @aviral2759 13 днів тому +1

    Ruins