Comments (4)
To me the clear benefit of subclocks is being able to represent data in a more succinct and declarative manner. You build the rules in a much more universal way. You can still for the most part solve the same problem a different more specific and verbose way (like setting values to their rest state).
I'm actually interested by this question. I've been using fine grained libraries, like S(but not S), in production for the better part of the a decade but since in most libraries subclock scenarios are so detrimental to performance I just don't think about solving issues that way. So I'm interested in any concrete use cases.
EDIT: I think this is more for synchronicity than anything. Subclocks ensure consistency where just setting a value doesn't.
from s.
Are subclocks available in mobx? Does mobx just use one clock? Can you give me a simple example of where subclocks make things more declarative?
from s.
I'm not aware of anything like this in MobX, but I'm not a MobX expert.
As for declarative look at the example in the readme. By declarative I mean indicative of intent, since subclocks in this example are actually quite iterative. You get to write that the computation works a certain way to set only if value is 10 or less. You don't care anymore how it gets to 10, just that it will end up there. Now in a real scenario I'm sure the computation would be more complicated than tracking over the single value. What I'm saying is if you wanted to avoid a computation like that you'd need to basically only apply the stable state (in this case set it directly to 11) and mirror any other work the computation would have done. This might require specific scenarios to be considered where as the rule might just be simpler.
Re-reading the readme the intent though is more about synchronicity to ensure outside all reactions are seeing the same data. I'm used to thinking of libraries like this being event/subscription orientated, but the goal of S is more about correctness and synchronicity. So there are probably a slew of actual scenarios where this is relevant.
from s.
Thanks Ryan! I think I am facing an issue now where they might be useful.
from s.
Related Issues (20)
- Karma / Jest testing HOT 9
- Just took it for a first drive....
- Push to array data signal HOT 1
- Creating computations when resolving Promises HOT 2
- Maps HOT 12
- Computations creating signals HOT 10
- Make methods treeshake-able HOT 3
- Root + Async = Headaches HOT 5
- Cleanup single computation HOT 1
- S.value multiple updates with no listeners fail HOT 1
- Conditionally triggering downstream computations HOT 3
- Can this nested computation behavior be explained? HOT 2
- Recommended way to deal with "Runaway clock detected"? HOT 1
- Handling Nested Computations under Branching Logic HOT 13
- Why prevent signals from setting different pending values in a single clock tick? HOT 1
- how to implement the rxjs .scan operator with S.js? HOT 7
- Local state inside effect / hooks HOT 2
- Compute value with prev != next check
- cleanup and update phases are intermingled HOT 2
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 s.