|
@@ -17,53 +17,55 @@ Generally, here's the status of each platform:
|
|
|
- **LiveView**: LiveView support is very young. You'll be figuring things out as you go. Thankfully, none of it is too hard and any work can be upstreamed into Dioxus.
|
|
|
|
|
|
## Features
|
|
|
+
|
|
|
---
|
|
|
|
|
|
| Feature | Status | Description |
|
|
|
| ------------------------- | ------ | -------------------------------------------------------------------- |
|
|
|
-| Conditional Rendering | ✅ | if/then to hide/show component |
|
|
|
-| Map, Iterator | ✅ | map/filter/reduce to produce rsx! |
|
|
|
-| Keyed Components | ✅ | advanced diffing with keys |
|
|
|
-| Web | ✅ | renderer for web browser |
|
|
|
-| Desktop (webview) | ✅ | renderer for desktop |
|
|
|
-| Shared State (Context) | ✅ | share state through the tree |
|
|
|
-| Hooks | ✅ | memory cells in components |
|
|
|
-| SSR | ✅ | render directly to string |
|
|
|
-| Component Children | ✅ | cx.children() as a list of nodes |
|
|
|
-| Headless components | ✅ | components that don't return real elements |
|
|
|
-| Fragments | ✅ | multiple elements without a real root |
|
|
|
-| Manual Props | ✅ | Manually pass in props with spread syntax |
|
|
|
-| Controlled Inputs | ✅ | stateful wrappers around inputs |
|
|
|
-| CSS/Inline Styles | ✅ | syntax for inline styles/attribute groups |
|
|
|
-| Custom elements | ✅ | Define new element primitives |
|
|
|
-| Suspense | ✅ | schedule future render from future/promise |
|
|
|
-| Integrated error handling | ✅ | Gracefully handle errors with ? syntax |
|
|
|
-| NodeRef | ✅ | gain direct access to nodes |
|
|
|
-| Re-hydration | ✅ | Pre-render to HTML to speed up first contentful paint |
|
|
|
-| Jank-Free Rendering | ✅ | Large diffs are segmented across frames for silky-smooth transitions |
|
|
|
-| Effects | ✅ | Run effects after a component has been committed to render |
|
|
|
+| Conditional Rendering | ✅ | if/then to hide/show component |
|
|
|
+| Map, Iterator | ✅ | map/filter/reduce to produce rsx! |
|
|
|
+| Keyed Components | ✅ | advanced diffing with keys |
|
|
|
+| Web | ✅ | renderer for web browser |
|
|
|
+| Desktop (webview) | ✅ | renderer for desktop |
|
|
|
+| Shared State (Context) | ✅ | share state through the tree |
|
|
|
+| Hooks | ✅ | memory cells in components |
|
|
|
+| SSR | ✅ | render directly to string |
|
|
|
+| Component Children | ✅ | cx.children() as a list of nodes |
|
|
|
+| Headless components | ✅ | components that don't return real elements |
|
|
|
+| Fragments | ✅ | multiple elements without a real root |
|
|
|
+| Manual Props | ✅ | Manually pass in props with spread syntax |
|
|
|
+| Controlled Inputs | ✅ | stateful wrappers around inputs |
|
|
|
+| CSS/Inline Styles | ✅ | syntax for inline styles/attribute groups |
|
|
|
+| Custom elements | ✅ | Define new element primitives |
|
|
|
+| Suspense | ✅ | schedule future render from future/promise |
|
|
|
+| Integrated error handling | ✅ | Gracefully handle errors with ? syntax |
|
|
|
+| NodeRef | ✅ | gain direct access to nodes |
|
|
|
+| Re-hydration | ✅ | Pre-render to HTML to speed up first contentful paint |
|
|
|
+| Jank-Free Rendering | ✅ | Large diffs are segmented across frames for silky-smooth transitions |
|
|
|
+| Effects | ✅ | Run effects after a component has been committed to render |
|
|
|
| Portals | 🛠 | Render nodes outside of the traditional tree structure |
|
|
|
| Cooperative Scheduling | 🛠 | Prioritize important events over non-important events |
|
|
|
| Server Components | 🛠 | Hybrid components for SPA and Server |
|
|
|
-| Bundle Splitting | 👀 | Efficiently and asynchronously load the app |
|
|
|
-| Lazy Components | 👀 | Dynamically load the new components as the page is loaded |
|
|
|
-| 1st class global state | ✅ | redux/recoil/mobx on top of context |
|
|
|
-| Runs natively | ✅ | runs as a portable binary w/o a runtime (Node) |
|
|
|
-| Subtree Memoization | ✅ | skip diffing static element subtrees |
|
|
|
-| High-efficiency templates | ✅ | rsx! calls are translated to templates on the DOM's side |
|
|
|
-| Compile-time correct | ✅ | Throw errors on invalid template layouts |
|
|
|
-| Heuristic Engine | ✅ | track component memory usage to minimize future allocations |
|
|
|
-| Fine-grained reactivity | 👀 | Skip diffing for fine-grain updates |
|
|
|
+| Bundle Splitting | 👀 | Efficiently and asynchronously load the app |
|
|
|
+| Lazy Components | 👀 | Dynamically load the new components as the page is loaded |
|
|
|
+| 1st class global state | ✅ | redux/recoil/mobx on top of context |
|
|
|
+| Runs natively | ✅ | runs as a portable binary w/o a runtime (Node) |
|
|
|
+| Subtree Memoization | ✅ | skip diffing static element subtrees |
|
|
|
+| High-efficiency templates | ✅ | rsx! calls are translated to templates on the DOM's side |
|
|
|
+| Compile-time correct | ✅ | Throw errors on invalid template layouts |
|
|
|
+| Heuristic Engine | ✅ | track component memory usage to minimize future allocations |
|
|
|
+| Fine-grained reactivity | 👀 | Skip diffing for fine-grain updates |
|
|
|
|
|
|
- ✅ = implemented and working
|
|
|
- 🛠 = actively being worked on
|
|
|
- 👀 = not yet implemented or being worked on
|
|
|
|
|
|
-
|
|
|
## Roadmap
|
|
|
+
|
|
|
These Features are planned for the future of Dioxus:
|
|
|
|
|
|
### Core
|
|
|
+
|
|
|
- [x] Release of Dioxus Core
|
|
|
- [x] Upgrade documentation to include more theory and be more comprehensive
|
|
|
- [x] Support for HTML-side templates for lightning-fast dom manipulation
|
|
@@ -72,16 +74,18 @@ These Features are planned for the future of Dioxus:
|
|
|
- [ ] Support for Portals
|
|
|
|
|
|
### SSR
|
|
|
+
|
|
|
- [x] SSR Support + Hydration
|
|
|
- [ ] Integrated suspense support for SSR
|
|
|
|
|
|
### Desktop
|
|
|
+
|
|
|
- [ ] Declarative window management
|
|
|
- [ ] Templates for building/bundling
|
|
|
-- [ ] Fully native renderer
|
|
|
- [ ] Access to Canvas/WebGL context natively
|
|
|
|
|
|
### Mobile
|
|
|
+
|
|
|
- [ ] Mobile standard library
|
|
|
- [ ] GPS
|
|
|
- [ ] Camera
|
|
@@ -92,9 +96,9 @@ These Features are planned for the future of Dioxus:
|
|
|
- [ ] Notifications
|
|
|
- [ ] Clipboard
|
|
|
- [ ] Animations
|
|
|
-- [ ] Native Renderer
|
|
|
|
|
|
### Bundling (CLI)
|
|
|
+
|
|
|
- [x] Translation from HTML into RSX
|
|
|
- [x] Dev server
|
|
|
- [x] Live reload
|
|
@@ -106,11 +110,11 @@ These Features are planned for the future of Dioxus:
|
|
|
- [ ] Image pipeline
|
|
|
|
|
|
### Essential hooks
|
|
|
+
|
|
|
- [x] Router
|
|
|
- [x] Global state management
|
|
|
- [ ] Resize observer
|
|
|
|
|
|
-
|
|
|
## Work in Progress
|
|
|
|
|
|
### Build Tool
|