Commit graph

189 commits

Author SHA1 Message Date
Demonthos
047ed1e553
Subtree memorization / reactive templates (#488)
This commit adds subtree memoization to Dioxus.

Subtree memoization is basically a compile-time step that drastically 
reduces the amount of work the diffing engine needs to do at runtime by
extracting non-changing nodes out into a static "template." Templates 
are then understood by the various renderers in the ecosystem as a 
faster way of rendering the same items. 

For example, in the web, templates are simply a set of DOM Nodes created 
once and then cloned later. This is the same pattern frameworks like Lithtml
and SolidJS use to achieve near-perfect performance. 

Subtree memoization adds an additional level of complexity to Dioxus. The RSX
macro needs to be much smarter to identify changing/nonchanging nodes and
generate a mapping between the Template and its runtime counterparts.

This commit represents a working starter point for this work, adding support 
for templates for the web, desktop, liveview, ssr, and native-core renderers.
In the future we will try to shrink code generation, generally improve 
performance, and simplify our implementation.
2022-09-30 12:03:06 -07:00
Jon Kelley
28fba42e7e
feat: add an unhygenic render macro (#556)
* feat: add an unhygenic render macro

* chore: use render instead of rsx!(cx,
2022-09-25 01:05:16 -07:00
Jon Kelley
540e785d8b
Less clumsy configuration for desktop and mobile (#553)
* chore: dont use prebuilt builder pattern for configuring desktop

* chore: use regular config pattern for web

* Chore: update docs too

* chore: clean up some warnings
2022-09-13 16:22:27 -07:00
Altug Sahin
0c421f6e8c
Document formatting and typo fixes (#495)
* minor formatting

* Internationalization: move guide to en folder and preserve its history. (#494)

* chore: move guide to en folder

* docs: add english as language

* merged conf resolved

* chore: remove outdated docs

* chore: use taffy dimension directly

* Add PT-BR translations (#456)

* Translate final.md, hello_world.md, README.md, ROADMAP.md and SUMMARY.md

* Translatation complete

* Internationalization: move guide to en folder and preserve its history. (#494)

* Clean files and build mdBook with localization feature

* Rebase, remove leftovers and check book builds for every language: 

Co-authored-by: Jon Kelley <jkelleyrtp@gmail.com>

* Remove argument from `use_hook` closure (#496)

Also; update docs for said function

* chore: prevent reference from being uploaded

Co-authored-by: Altug Sahin <altugsahin@gmail.com>
Co-authored-by: Jon Kelley <jkelleyrtp@gmail.com>
Co-authored-by: Breno Rocha <66398400+amindWalker@users.noreply.github.com>
Co-authored-by: Reinis Mazeiks <rMazeiks@users.noreply.github.com>
Co-authored-by: = <evanalmloff@gmail.com>
2022-09-05 13:58:19 -05:00
Reinis Mazeiks
c801d4402e
Fix propagation docs (#526)
* Fix typo - wrong example for "stopping propagation" section

* Move `lib.rs` in guide back to `src`

* Make sure tests get run when guide is updated (there's examples in the guide to check for compilation errors)
2022-08-10 07:23:27 -05:00
Marco Godoy
9538cfe733
Update Docs CI with mdbook translation support (#516)
* Update Docs CI with mdbook translation support #514

* install mdbook with --rev
2022-08-04 10:26:04 -05:00
Marc Espín
df5338f4e6
Fix typos and update code (#513) 2022-07-30 07:20:49 -05:00
Jonathan Kelley
d090b24f8d chore: prevent reference from being uploaded 2022-07-18 13:52:01 -07:00
Breno Rocha
6ea076fa7f
Add PT-BR translations (#456)
* Translate final.md, hello_world.md, README.md, ROADMAP.md and SUMMARY.md

* Translatation complete

* Internationalization: move guide to en folder and preserve its history. (#494)

* Clean files and build mdBook with localization feature

* Rebase, remove leftovers and check book builds for every language: 

Co-authored-by: Jon Kelley <jkelleyrtp@gmail.com>
2022-07-11 13:28:12 -04:00
Jonathan Kelley
2369b0cc7f chore: remove outdated docs 2022-07-09 15:22:54 -04:00
Jon Kelley
d9546d9504
Renderers are now packages, not features. (#387)
* feat: use synchronous router design

* feat: function to get router out of dom

* chore: restructure workspace to use renderers as packages, not features
2022-07-09 15:15:20 -04:00
Jon Kelley
c97ca7dff6
Internationalization: move guide to en folder and preserve its history. (#494)
* chore: move guide to en folder

* docs: add english as language
2022-07-09 12:31:46 -04:00
Reinis Mazeiks
6c323e9fc5
Rework Guide (#486)
* Move getting started to Guide

* Clean up summary and getting started

* Shorten intro by moving stuff to individual platform docs

* Make intro even shorter, summarize features

* Further cleanup; move development-related docs to separate section

* Make `guide` a crate. Turn code samples into examples so that we can check if they compile

* Rewrite "Describing the UI":

* Focus on RSX syntax (interactivity covered in later chapters); make sure samples are tested; concise language

* Move some "special attribute" samples to the `examples` directory

* Simplify introduction to components

* Simplify introduction to component props

* Document Prop features; add code samples

* Simplify component children docs

* Interactivity: better introduction to events

* Hooks: better introduction

* Remove outdated doc

* Introducs use_ref

* Simplify User Input chapter

* Document event handler props

* Meme editor example

* Meme editor walkthrough

* Add dark mode example

* Guide for context; dark mode example

* Guide: custom hooks

* Guide: conditional rendering

* Guide: rendering lists

* Guide: rendering lists + keys

* Move remaining infor from Reference to guide

* Delete reference book
2022-07-07 08:50:36 +00:00
Demonthos
4a5ae758ee
Allow Multiple dependencies for states in the RealDom (native core) (#412)
* WIP multable deps

* WIP: refactor and genralize state macro

* add traversable trait

* update tui to use elementid to index dom
2022-07-07 00:50:22 -04:00
Reinis Mazeiks
48d96869d3 Reference: remove empty and almost empty pages
(Avoids confusion and improves navigation)
2022-06-30 22:49:19 +03:00
Reinis Mazeiks
0ab2f38314 Guide: remove empty and almost empty pages
(Avoids confusion and improves navigation)
2022-06-30 22:39:34 +03:00
Reinis Mazeiks
f3fcec2bdf Merge branch 'master' of https://github.com/DioxusLabs/dioxus into rusty-events
 Conflicts:
	packages/html/src/events.rs
	packages/tui/src/hooks.rs
2022-06-28 21:09:20 +03:00
YuKun Liu
0af69f83f2 Rename hot_reload to hot-reload 2022-06-26 14:23:19 +08:00
Evan Almloff
9e7e5b0859 Merge remote-tracking branch 'upstream/master' into jk/rsx-refactor 2022-06-16 09:17:36 -05:00
Evan Almloff
d422a23c94 add a chapter in the refrence 2022-06-14 09:55:46 -05:00
xTeKc
af951f30ce
update dead link 2022-06-12 04:10:42 -04:00
xTeKc
287cef96b1
fix link 2022-06-12 04:02:21 -04:00
Jon Kelley
33eb59e21f
Merge pull request #431 from AOx0/master
Fix outdated guide section (React-like foo, set_foo)
2022-06-10 11:41:57 -04:00
Alejandro Osornio
6520b24d67
Update index.md
+ Fix outdated documentation
2022-06-01 15:52:43 -05:00
ZingerLittleBee
2cdd142c3e fix: desktop project name in docs 2022-05-23 00:56:08 +08:00
Reinis Mazeiks
45980f9a1e Update examples to avoid deprecated API 2022-05-12 15:00:43 +03:00
Jonathan Moore
21df7d2142
Fix typo 2022-05-05 17:49:08 -05:00
Jon Kelley
f7e67cb2d7
Merge pull request #329 from Demonthos/lazy_tui
Tui Lazy Attributes and Layout
2022-05-02 21:38:18 -04:00
Jon Kelley
1d42894599
Merge pull request #388 from Demonthos/tui_docs
change with_ctrl_c_quit to without_ctrl_c_quit for tui config
2022-05-02 12:12:30 -04:00
Evan Almloff
99fea74786 change with_ctrl_c_quit to without_ctrl_c_quit 2022-04-30 16:52:54 -05:00
YuKun Liu
00354c9b6a
Move cli docs to cli repo 2022-04-27 07:38:31 +08:00
Evan Almloff
159be32fd4 update documentation to refect tui changes 2022-04-21 13:48:11 -05:00
Evan Almloff
7c30d93a3d nested state 2022-04-19 20:12:57 -05:00
Demonthos
f4689a4e27
Merge branch 'DioxusLabs:master' into lazy_tui 2022-04-17 08:48:39 -05:00
Evan Almloff
d9276bd64c clean up code and docs 2022-04-17 07:29:35 -05:00
Evan Almloff
4718668389 add docoumentation for custom_renderer 2022-04-17 07:10:15 -05:00
YuKun Liu
c9537a4c41
Update localstate.md 2022-04-17 12:27:41 +08:00
Erlend Sogge Heggen
5f17b6a849
Update mobile.md 2022-04-11 09:53:08 +02:00
Tim Lee
a5a5821aa5 Include optional public-url flag in build instruction within getting started docs 2022-04-08 15:32:07 +01:00
Demonthos
479c12725f
Merge branch 'DioxusLabs:master' into lazy_tui 2022-04-04 12:10:18 -05:00
Evan Almloff
32b2e3a135 bugfixes, docs, and pass clippy 2022-04-02 16:46:46 -05:00
Jon Kelley
d8a6d61723
Merge pull request #335 from kdwarn/master 2022-04-02 14:50:37 -04:00
YuKun Liu
8e1e06d8c3
fix: docs 2022-03-28 13:11:33 +08:00
Kris Warner
e61fa44497 Make minor grammar, spelling, and style changes 2022-03-27 21:24:14 -04:00
Kris Warner
cb1e16c91c Fix name of later chapter 2022-03-26 10:58:54 -04:00
Kris Warner
36ccb835ab Clarify that expr in string literal limit of Rust 2022-03-26 10:52:55 -04:00
Kris Warner
55b818b08d Fix link to router guide 2022-03-26 00:04:58 -04:00
Kris Warner
2ffd90c98b Remove bullets from numbered list 2022-03-25 22:36:40 -04:00
Kris Warner
e57c0890ec Delete redundant sentence 2022-03-25 22:26:42 -04:00
Jon Kelley
d3ac3db296
Merge pull request #315 from Synphonyte/master
Option<...> props are optional by default.
2022-03-20 19:59:35 -04:00