瀏覽代碼

Remove outdated docs

Jonathan Kelley 1 年之前
父節點
當前提交
5dd33c9dcd
共有 2 個文件被更改,包括 0 次插入211 次删除
  1. 0 73
      notes/ARCHITECTURE.md
  2. 0 138
      notes/CHANGELOG.md

+ 0 - 73
notes/ARCHITECTURE.md

@@ -1,73 +0,0 @@
-# Signals
-
-Signals provide a way of forcing updates directly through Dioxus without having to go through the diffing phase.
-
-When diffing is too slow for your use-case, signals can be faster. Signals run at a higher priority than regular diffing, acting as a hint to Dioxus that a signal update needs to take precedence over a subtree update. This can be useful in real-time systems where getting data from a websocket to the screen ASAP is extremely important.
-
-- High
-- Medium
-- Low
-
-## Signals:
-
-Producer -> Receiver
-
-- The Dioxus VirtualDOM provides built-in receivers for signals.
-- Elements themselves act as receivers.
-- Any use of a signal schedules the current element and its children for updates.
-- Attributes are valid receivers
-- Text nodes are valid receivers
-- Receivers may not be passed into child components (must be de-referenced)
-- When receivers are derefed in a component's properties, the props will be updated in place and the component will re-render with the new value.
-
-```rust
-let sig = use_signal(|| 0);
-
-// any updates to the signal will cause the child to re-render completely
-Comp {
-    prop: *sig
-}
-```
-
-Using 3 separate signals
-
-```rust
-let width = use_signal(|| 0);
-
-cx.request_next_frame(move |frame| async {
-    sig1 += 1;
-    frame.again();
-})
-
-div {
-    h2 { "{sig1}" }
-    h3 { "{sig2}" }
-    h4 { "{sig3}" }
-}
-```
-
-
-## Subtree memoization
-
-The rsx! macro needs to be *really* smart. If it detects that no dynamics are pumped into the macro, then it opts to use the "const" flavors of the element build functions we know and love. This has to be done at build time rather than runtime since components may return basically anything. Using the const flavor enables is_static which encourages Dioxus to do a ptr compare instead of a value compare to short circuit through the diffing. Due to const folding in Rust, entire subtrees can be ruled out at compile time.
-
-It would be interesting to fix the issue of dynamic subtrees by hashing each structure (or just the const structures) or the macro call itself. That way, each call gets its own identifier and we can make sure that two unique structures have different IDs and aren't just opaque to dioxus.
-
-```rust
-let s1 = LazyNodes::new("1", move |_| {
-    if rand() {
-        f.element()
-    } else {
-        f.element()
-    }
-});
-let s2 = LazyNodes::new("1", move |f| {
-    if rand() {
-        f.element()
-    } else {
-        f.element()
-    }
-});
-// produces the same ID with different structures
-// perhaps just make this
-```

+ 0 - 138
notes/CHANGELOG.md

@@ -1,138 +0,0 @@
-# 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
-- State management
-- Build CLI
-- Foundational hooks
-- 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 child nodes, scope creation
-- [x] (Core) Implement dirty tagging and compression
-
-## 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
-- [ ] (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
-- [x] Implement use_context (only the API, not the state management solution)
-- [ ] Implement use_reducer (WIP)
-
-## Project: String Render (TBD)
-
-> 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
-
-- [ ] (Examples) Tide example with templating
-
-## 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
-> ?
-
-## Project: Mobile exploration
-
-## Project: Live-View 🤲 🍨
-
-> 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
-- [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
-  - [ ] Re-exported through the `dioxus` crate (not core)
-- [ ] Hooks
-  - [ ] Re-exported through the `dioxus` crate (not essential to core virtualdom)
-- [x] fragments
-- [x] pass-thru components
-
-## Less-essential todos
-
-- [ ] HTML doesn't require strings between elements (copy-paste from internet)
-- [ ] Beef up the dioxus CLI tool to report build progress
-- [ ] Extract arena logic out for better safety guarantees
-- [ ] Extract BumpFrame logic out for better safety guarantees
-- [ ] make SSR follow HTML spec
-- [ ] MIRI tests
-- [ ] all synthetic events filled out
-- [ ] double check event targets and stuff
-- [ ] Documentation overhaul
-- [ ] Website
-
-lower priority features
-
-- [x] Attributes on elements should implement format_args instead of string fmt
-- [ ] node refs (postpone for future release?)
-- [ ] styling built-in (future release?)
-- [ ] key handler?
-- [ ] FC macro?