WIP: move to static props
This commit is contained in:
1 parent
c5089ba3c5
commit
c1fd848f89
37 files changed
+1014
-339
No files matched your search
@@ -1,18 +0,0 @@
|
||||
# Dioxus Architecture
|
||||
|
||||
:)
|
||||
|
||||
|
||||
```rust
|
||||
|
||||
let data = use_context();
|
||||
data.set(abc);
|
||||
|
||||
unsafe {
|
||||
// data is unsafely aliased
|
||||
data.modify(|&mut data| {
|
||||
|
||||
})
|
||||
}
|
||||
|
||||
```
|
||||
+39
-14
@@ -1,5 +1,7 @@
|
||||
# Dioxus v0.1.0
|
||||
|
||||
Welcome to the first iteration of the Dioxus Virtual DOM! This release brings support for:
|
||||
|
||||
- Web via WASM
|
||||
- Desktop via webview integration
|
||||
- Server-rendering with custom ToString implementation
|
||||
@@ -9,27 +11,35 @@ Welcome to the first iteration of the Dioxus Virtual DOM! This release brings su
|
||||
- Context API
|
||||
- Basic suspense
|
||||
- Controlled components
|
||||
----
|
||||
|
||||
---
|
||||
|
||||
## Project: Initial VDOM support (TBD)
|
||||
|
||||
> Get the initial VDom + Event System + Patching + Diffing + Component framework up and running
|
||||
> Get a demo working using just the web
|
||||
|
||||
- [x] (Core) Migrate virtual node into new VNode type
|
||||
- [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
|
||||
- [x] (Core) Implement lifecycle
|
||||
- [x] (Core) Implement an event system
|
||||
- [x] (Core) Implement an event system
|
||||
- [x] (Core) Implement child nodes, scope creation
|
||||
- [x] (Core) Implement dirty tagging and compression
|
||||
|
||||
## Project: QOL
|
||||
## Project: QOL
|
||||
|
||||
> Make it easier to write components
|
||||
|
||||
- [x] (Macro) Tweak event syntax to not be dependent on wasm32 target (just return regular closures which get boxed/alloced)
|
||||
- [x] (Macro) Tweak component syntax to accept a new custom element
|
||||
- [x] (Macro) Tweak component syntax to accept a new custom element
|
||||
- [ ] (Macro) Allow components to specify their props as function args
|
||||
|
||||
## Project: Hooks + Context + Subscriptions (TBD)
|
||||
|
||||
> Implement the foundations for state management
|
||||
|
||||
- [x] Implement context object
|
||||
- [x] Implement use_state (rewrite to use the use_reducer api like rei)
|
||||
- [x] Implement use_ref
|
||||
@@ -37,54 +47,66 @@ Welcome to the first iteration of the Dioxus Virtual DOM! This release brings su
|
||||
- [ ] Implement use_reducer (WIP)
|
||||
|
||||
## Project: String Render (TBD)
|
||||
> Implement a light-weight string renderer with basic caching
|
||||
|
||||
> Implement a light-weight string renderer with basic caching
|
||||
|
||||
- [x] (Macro) Make VText nodes automatically capture and format IE allow "Text is {blah}"
|
||||
- [x] (SSR) Implement stateful 3rd party string renderer
|
||||
|
||||
## Project: Web_sys renderer (TBD)
|
||||
|
||||
- [x] WebSys edit interpreter
|
||||
- [x] Event system using async channels
|
||||
- [ ] Implement conversion of all event types into synthetic events
|
||||
|
||||
## Project: Web-View 🤲 🍨
|
||||
|
||||
> Proof of concept: stream render edits from server to client
|
||||
|
||||
- [x] Prove that the diffing and patching framework can support patch streaming
|
||||
|
||||
## Project: Examples
|
||||
> Get *all* the examples
|
||||
|
||||
> Get _all_ the examples
|
||||
|
||||
- [ ] (Examples) Tide example with templating
|
||||
|
||||
## Project: State management
|
||||
## Project: State management
|
||||
|
||||
> Get some global state management installed with the hooks + context API
|
||||
|
||||
|
||||
## Project: Concurrency (TBD)
|
||||
> Ensure the concurrency model works well, play with lifetimes to check if it can be multithreaded + halted
|
||||
?
|
||||
|
||||
> Ensure the concurrency model works well, play with lifetimes to check if it can be multithreaded + halted
|
||||
> ?
|
||||
|
||||
## Project: Mobile exploration
|
||||
|
||||
|
||||
## Project: Live-View 🤲 🍨
|
||||
> Combine the server and client into a single file :)
|
||||
|
||||
> Combine the server and client into a single file :)
|
||||
|
||||
## Project: Sanitization (TBD)
|
||||
|
||||
> Improve code health
|
||||
|
||||
- [ ] (Macro) Clippy sanity for html macro
|
||||
- [ ] (Macro) Error sanitization
|
||||
|
||||
|
||||
## Outstanding todos:
|
||||
|
||||
> anything missed so far
|
||||
|
||||
- [x] keys on components
|
||||
- [x] Allow paths for components
|
||||
- [x] todo mvc
|
||||
- [x] Tweak macro parsing for better errors
|
||||
- [x] dirty tagging, compression
|
||||
- [x] code health
|
||||
- [ ] name spacing so svg works
|
||||
- [x] static str slice optimization
|
||||
- [x] name spacing so svg works
|
||||
- [x] A handful of svg elements are automatically namespaced
|
||||
- [ ] Allow hierarchical namespacing (all children share a parent's namespace) - TBD in macro impl
|
||||
- [ ] fix keys on elements
|
||||
- [ ] controlled components (kinda tuff since we need all these different platforms)
|
||||
- [ ] Their own crate
|
||||
@@ -93,6 +115,8 @@ Welcome to the first iteration of the Dioxus Virtual DOM! This release brings su
|
||||
- [ ] Re-exported through the `dioxus` crate (not essential to core virtualdom)
|
||||
|
||||
## Less-essential todos
|
||||
|
||||
- [ ] HTML doesn't require strings between elements (copy-paste from internet)
|
||||
- [ ] Make events lazy (use traits + Box<dyn>) - not sure what this means anymore
|
||||
- [ ] Beef up the dioxus CLI tool to report build progress
|
||||
- [ ] Extract arena logic out for better safety guarantees
|
||||
@@ -105,6 +129,7 @@ Welcome to the first iteration of the Dioxus Virtual DOM! This release brings su
|
||||
- [ ] Website
|
||||
|
||||
lower priority features
|
||||
|
||||
- [ ] Attributes on elements should implement format_args instead of string fmt
|
||||
- [ ] fragments
|
||||
- [ ] node refs (postpone for future release?)
|
||||
|
||||
+35
-15
@@ -1,70 +1,90 @@
|
||||
# Road map
|
||||
|
||||
This release map gives a sense of the release cadence and features per update going forward into the future. PRs are required to be squashed before merging. For each point release, we save a branch on master (0.1, 0.2, 0.3, master). Eventually, we'll remove these in favor of higher point releases when dioxus is stabilized. Any live PRs will be merged into the dev branch.
|
||||
|
||||
Until 0.3, Dioxus will be in stealth mode. The goal is to launch with a bountiful feature set and a cohesive API before OSS tears it apart :). Once LiveView is ready, then Dioxus will launch completely with a beta service for LiveHost.
|
||||
Until 0.3, Dioxus will be in stealth mode. The goal is to launch with a bountiful feature set and a cohesive API before OSS tears it apart :).
|
||||
|
||||
## v0.1: Bare Necessities
|
||||
|
||||
> Enable ergonomic and performant webapps
|
||||
|
||||
---
|
||||
|
||||
Dioxus Core
|
||||
|
||||
- Lifecycles for components
|
||||
- Internal event system
|
||||
- Diffing
|
||||
- Patching
|
||||
|
||||
Html macro
|
||||
|
||||
- special formatting
|
||||
- closure handlers
|
||||
- child handlers
|
||||
- iterator handlers
|
||||
|
||||
|
||||
Dioxus web
|
||||
|
||||
- a
|
||||
|
||||
Dioxus CLI
|
||||
|
||||
Dioxus CLI
|
||||
|
||||
- Develop
|
||||
- Bundle
|
||||
- Test
|
||||
|
||||
|
||||
Server-side-rendering
|
||||
|
||||
- Write nodes to string
|
||||
- Integration with tide, Actix, warp
|
||||
|
||||
Dioxus WebView (desktop)
|
||||
|
||||
- One-file setup for desktop apps
|
||||
- Integration with the web browser for rapid development
|
||||
|
||||
## v0.2: Bread and butter
|
||||
|
||||
> Complex apps? CHECK
|
||||
|
||||
---
|
||||
|
||||
State management
|
||||
|
||||
- Dioxus-Reducer as the blessed redux alternative
|
||||
- Includes thunks and reducers (async dispatches)
|
||||
- Dioxus-Dataflow as the blessed recoil alternative
|
||||
- Dioxus-DataFlow as the blessed recoil alternative
|
||||
- The hip, new approach for granular state
|
||||
|
||||
Dioxus CLI
|
||||
|
||||
- Visual tool?
|
||||
- Asset bundling service
|
||||
|
||||
Dioxus DevTools integration with the web
|
||||
- Basic support for pure liveview/webview
|
||||
|
||||
Dioxus DevTools integration with the web
|
||||
|
||||
- Basic support for pure liveview/webview
|
||||
|
||||
## v0.3: Superpowers
|
||||
|
||||
> Enable LiveView for fullstack development
|
||||
|
||||
---
|
||||
|
||||
Dioxus LiveView
|
||||
- Custom server built on Actix (or something fast)
|
||||
- Ergonomic builders
|
||||
- Concurrent system built into dioxus core
|
||||
|
||||
- Custom server built on Actix (or something fast)
|
||||
- Ergonomic builders
|
||||
- Concurrent system built into dioxus core
|
||||
|
||||
Dioxus iOS
|
||||
- Initial support via webview
|
||||
- Look into native support based on how Flutter/SwiftUI works
|
||||
|
||||
- Initial support via webview
|
||||
- Look into native support based on how Flutter/SwiftUI works
|
||||
|
||||
Dioxus Android
|
||||
|
||||
## v0.4: Community
|
||||
|
||||
## v0.4: Community
|
||||
> Foster the incoming community
|
||||
Reference in new issue
Block a user