Feat: implememt nodes better

This commit is contained in:
Jonathan Kelley committed 2021-02-07 19:14:04 -05:00
1 parent c9d95dd1dc
commit edbb33b2ee
9 files changed
+317 -387

No files matched your search

+20 -13
View File
@@ -1,4 +1,5 @@
# Project: Live-View 🤲 🍨
> Combine the server and client into a single file :)
# Project: Sanitization (TBD)
@@ -8,17 +9,10 @@
# Project: Examples
> Get *all* the examples
- [ ] (Examples) Tide example with templating
- [ ] (Examples) Tide example with templating
- [ ] (Examples) Tide example with templating
- [ ] (Examples) Tide example with templating
# Project: State management
> Get some global state management installed with the hooks API
# Project: Hooks + Context + Subscriptions (TBD)
> Implement a light-weight string renderer with basic caching
- [ ] Implement context object
# Project: Concurrency (TBD)
> Ensure the concurrency model works well, play with lifetimes to check if it can be multithreaded + halted
@@ -31,13 +25,26 @@
- [ ] (SSR) Implement stateful 3rd party string renderer
- [ ] (Macro) Make VText nodes automatically capture and format IE allow "Text is {blah}" in place of {format!("Text is {}",blah)}
# Project: Hooks + Context + Subscriptions (TBD)
> Implement the foundations for state management
- [x] Implement context object
- [ ] Implement use_state
- [ ] Implement use_ref
- [ ] Implement use_reducer
- [ ] Implement use_context
# Project: QOL
> Make it easier to write components
- [ ] (Macro) Tweak event syntax to not be dependent on wasm32 target (just return regular closures which get boxed)
- [ ] (Macro) Tweak component syntax to accept a new custom element
- [ ] (Macro) Allow components to specify their props as function args
# Project: Initial VDOM support (TBD)
> Get the initial VDom + Event System + Patching + Diffing + Component framework up and running
- [x] (Core) Migrate virtual node into new VNode type
- [ ] (Macro) Allow components to specify their props as function args
- [ ] (Core) Arena allocate VNodes
- [ ] (Core) Allow VNodes to borrow arena contents
- [ ] (Macro) Tweak event syntax to not be dependent on wasm32 target (just return regular closures)
- [ ] (Macro) Tweak component syntax to accept a new custom element
- [ ] (Core) Introduce the VDOM and patch API for 3rd party renderers
- [x] (Core) Arena allocate VNodes
- [x] (Core) Allow VNodes to borrow arena contents
- [x] (Core) Introduce the VDOM and patch API for 3rd party renderers
- [ ] (Core) Implement lifecycle
- [ ] (Core) Implement an event system