Comments (2)
No I think you’re definitely onto something! One cool thing is that we can actually reuse arrays of elements, because they’re preserved between renders:
function *VirtualList() {
let els = Array.from({length: 1000}, (i) => <VirtualEl crank-key={i} />);
// some listener which mutates elements
while (true) {
yield <div>{els}</div>;
}
}
This might decrease the memory requirements of huge stateful arrays. You could do this in React, but putting actual elements in React state always felt icky, and elements themselves were supposed to be immutable. We don’t have that requirement in Crank, and mutating elements in rare cases where memory needs to be reused could be kinda cool. Maybe it’s a huge mistake but I think there’s a lot of room for experimentation.
from crank.
FYI this is the new kid in the block and the alternative for react-window:
React hooks implementation
https://github.com/tannerlinsley/react-virtual
from crank.
Related Issues (20)
- Restart generator components which return when re-rendered HOT 1
- Context utility wish-list HOT 3
- Precise DOM mutations HOT 1
- Allow async generator components to use `for... of` HOT 2
- `null` vs `undefined` as a way to indicate deleting props/attributes from host elements HOT 2
- Async unmounting/updating
- Better error messages for tagged template function Syntax Errors.
- Call `cleanup()` functions even if component is unmounted HOT 1
- Full-stack (meta?) framework / CLI HOT 2
- Adopt React’s element identity behavior HOT 1
- Errors being swallowed in the second async component of a race. HOT 1
- Export `renderer` and `Renderer` based on environment from `@b9g/crank/standalone`
- The type="text" attribute on input elements is being removed HOT 6
- Use `key`, `ref` and `static` props instead of the variants HOT 6
- Attempting to set up with Vite HOT 7
- HTML in SVG (via foreignObject & `jsx` function) doesn't render HOT 5
- Can't express HTML entities in jsx template strings, e.g. or ​ HOT 9
- When does a render get mounted? HOT 4
- Adding a $key prevents component lifecycle `finally` clause HOT 4
- Keyed elements disappear HOT 4
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 crank.