# Misko Hevery - useSignal is the Future of Web Frameworks (Highlights) ![rw-book-cover|256](https://cdn.builder.io/api/v1/image/assets%2FYJIGb4i01jvw0SRdL5Bt%2F0c790086a43f446a88bc03569a01bf73?width=1200) ## Metadata **Review**:: [readwise.io](https://readwise.io/bookreview/24842855) **Source**:: #from/readwise **Zettel**:: #zettel/fleeting **Status**:: #x **Authors**:: [[Misko Hevery]] **Full Title**:: useSignal is the Future of Web Frameworks **Category**:: #articles #readwise/articles **Category Icon**:: 📰 **Document Tags**:: #shortlist #web-development **URL**:: [www.builder.io](https://www.builder.io/blog/usesignal-is-the-future-of-web-frameworks) **Host**:: [[www.builder.io]] **Highlighted**:: [[2023-02-28]] **Created**:: [[2023-03-04]] ## Highlights - The key difference between Signals and State is that Signals return a getter and a setter, whereas non-reactive systems return a value (and a setter). ([View Highlight](https://read.readwise.io/read/01gtbjs8bxy90vy0kceg2azfw2)) ^483795874 - To be reactive, Signals must collect who is interested in the Signal’s value. They gain this information by observing in what context the state-getter is invoked. ([View Highlight](https://read.readwise.io/read/01gtbjthfaafkmkv7zsmfqynvf)) ^483795944 - If the value changes, this location needs to be re-evaluated. In other words, **invoking the getter creates a subscription**. ([View Highlight](https://read.readwise.io/read/01gtbjv73cg9pqs2216n0fs32e)) ^483796192 - React has `useRef()`, which is similar to `useSignal()`, but it does not cause the UI to re-render. ([View Highlight](https://read.readwise.io/read/01gtbjxaf76y8z7psfcqm4f7fw)) ^483796670 - `useSignal()` can do what `useRef()` does plus subscription tracking. ([View Highlight](https://read.readwise.io/read/01gtbjxxre1np7tkyk8x0zywcj)) ^483796823 - So, this is why signals work as if you memoized everything without actually having to memoize anything yourself. ([View Highlight](https://read.readwise.io/read/01gtbk0yk9k9h2s5aze256w6e8)) ^483797206