Comments (1)
It's a nice idea! I had the same idea but I ran into issues trying to implement it back in the early days of signia.
The problem is:
During a transaction the dependency graph may change, and it becomes possible for a change to an atom to need to flow to a reactor that it wasn't connected to before the start of the transaction. Which meant that any time the parents of any computed changed during a transaction we had to traverse it's entire parent hierarchy to find root atoms, and then make sure it's list of connected reactors was up to date, while detaching the reactors of any atoms no longer in the parent hierarchy.
I tried to optimize that by caching the parent atoms at each computed node, but that was slow and buggy and complicated, so I didn't pursue it further.
I'd be interested to find out whether starbeam is both pull-based and has transactions, and if so whether their stuff resolves the issue I ran into somehow.
from signia.
Related Issues (20)
- Allow squashing history entries HOT 2
- Add perf profiling tool
- Flesh out JSDoc
- Bug in docs code example? HOT 1
- Add react bindings
- Can't use signia-react-jsx jsxImportSource with Vite HOT 1
- Add Vue to the list of signals 🖖🏼
- Signia not reactive on nextjs HOT 6
- Add react bindings HOT 1
- Vite's Hot module replacement doesn't work with signia-react-jsx HOT 2
- Build fails in Vite HOT 3
- Benchmark against similar libs HOT 4
- More extensible effect notification HOT 2
- Warn or throw error when signal.value is read untracked during component render HOT 1
- Multiple versions of signia detected. HOT 3
- Write API docs
- `signia-react-jsx` doesn't work with lazy-loaded components in Vite/React
- Does Signia support SSR?
- Write Rationale + comparison docs
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from signia.