scheduler.postTask() lets you express that directly with task priorities. It’s a very interesting API, although browser support still isn’t complete.
scheduler.postTask() lets you express that directly with task priorities. It’s a very interesting API, although browser support still isn’t complete.
Dependencies are compared with "Object.is", memoization relies heavily on stable references, and external-store snapshots do too.
That’s where structural sharing becomes useful: unchanged branches can keep their identity.
Dependencies are compared with "Object.is", memoization relies heavily on stable references, and external-store snapshots do too.
That’s where structural sharing becomes useful: unchanged branches can keep their identity.
They’re usually taught as timing utilities, but the deeper problem is backpressure: the UI can produce work faster than the system can consume it.
Debouncing, throttling, buffering and coalescing are different ways to handle that.
They’re usually taught as timing utilities, but the deeper problem is backpressure: the UI can produce work faster than the system can consume it.
Debouncing, throttling, buffering and coalescing are different ways to handle that.
Cancelling the previous request is one solution. But cancellation and relevance are different problems. Even if you can’t cancel the work, you can still ignore a result that became obsolete.
Cancelling the previous request is one solution. But cancellation and relevance are different problems. Even if you can’t cancel the work, you can still ignore a result that became obsolete.
When React reads from an external store, the UI needs to reflect one consistent version of it. If the store changes during a render, different parts could otherwise be built from different snapshots.
That inconsistency is called tearing.
When React reads from an external store, the UI needs to reflect one consistent version of it. If the store changes during a render, different parts could otherwise be built from different snapshots.
That inconsistency is called tearing.
PostgreSQL NOT VALID lets you protect new writes now, then validate the existing rows later, without making the initial migration wait on that full scan.
PostgreSQL NOT VALID lets you protect new writes now, then validate the existing rows later, without making the initial migration wait on that full scan.
Both can render the exact same UI.
But only one tells React “this is a component.” The other just executes a function inside the current render, which changes how React understands the tree itself.
Both can render the exact same UI.
But only one tells React “this is a component.” The other just executes a function inside the current render, which changes how React understands the tree itself.
Look at this and tell me you don’t recognize the routing model SPA frameworks have been using for years:
Look at this and tell me you don’t recognize the routing model SPA frameworks have been using for years:
Yes, it has been memoized, but children is a prop too. And here, children contains <span>hello</span>, which creates a new React element object on every render.
memo() does a shallow comparison, sees a new children value, and re-renders the component.
Yes, it has been memoized, but children is a prop too. And here, children contains <span>hello</span>, which creates a new React element object on every render.
memo() does a shallow comparison, sees a new children value, and re-renders the component.
I think the opposite.
AI is lowering the bar for what’s worth building. Projects that made no economic sense are becoming feasible. We may build much more software.
I think the opposite.
AI is lowering the bar for what’s worth building. Projects that made no economic sense are becoming feasible. We may build much more software.
Well, CSS can now handle both directly:
.item {
width: calc(100% / sibling-count());
animation-delay: calc(sibling-index() * 100ms);
}
About time!
Well, CSS can now handle both directly:
.item {
width: calc(100% / sibling-count());
animation-delay: calc(sibling-index() * 100ms);
}
About time!