Commit Graph
78 Commits
Author SHA1 Message Date
Evan Almloff 6ee4f7df4f update examples 2022-12-06 08:33:51 -06:00
Evan Almloff 40b15f834b move persistant iterator test 2022-12-06 08:31:06 -06:00
Evan Almloff ad33f2ce96 update tests 2022-12-05 21:36:24 -06:00
Evan Almloff 24cb503c09 don't push template nodes onto the stack 2022-12-05 13:49:55 -06:00
Evan Almloff 1587056a4b some basic tui examples working 2022-12-05 13:30:13 -06:00
Evan Almloff 11b37ee141 more progress updating tui 2022-12-05 09:44:43 -06:00
Evan Almloff 8c07b4059f update tui with new mutations 2022-12-04 20:39:54 -06:00
Evan Almloff 72184e65ef update persistant_iterator utility 2022-12-04 19:43:05 -06:00
Evan Almloff d2047ed744 mark cloned nodes as dirty 2022-12-03 22:40:09 -06:00
Evan Almloff 0e17199e7a more progress on macro 2022-12-03 22:26:37 -06:00
Evan Almloff 29a61b1855 make the macro compile 2022-12-03 19:35:37 -06:00
Evan Almloff 53094a7bbd work on implementing macro 2022-12-03 18:28:32 -06:00
Evan Almloff 0d780fee61 update to new mutations 2022-12-03 18:28:25 -06:00
Evan Almloff d78af904e6 work on intigrating state with passes 2022-11-26 15:25:02 -06:00
Evan Almloff 4812b5124a clean up examples 2022-11-26 12:18:23 -06:00
Evan Almloff 42888f0cbc add up dependant test 2022-11-26 12:13:37 -06:00
Evan Almloff bb3be32b19 fix some warnings 2022-11-26 11:51:52 -06:00
Evan Almloff 51f643c5dc make passes exicute in parallel instead of executing invidual passes in parellel 2022-11-26 11:50:54 -06:00
Evan Almloff 8af59d6969 move height into the tree instead of the realdom 2022-11-25 22:22:56 -06:00
Evan Almloff 7d3ac26fce fix deadlock and add more tests 2022-11-25 15:04:00 -06:00
Evan Almloff 9e47468c3a more work on parallel passes 2022-11-25 13:38:01 -06:00
Evan Almloff 26d4e48480 make resolve passes public 2022-11-25 11:45:47 -06:00
Evan Almloff c7eeeef68e add more code for parrellel passes 2022-11-25 11:44:46 -06:00
= 4096861c59 work on upward pass 2022-11-24 22:56:19 -06:00
Evan Almloff e08a2186a6 make get node parent mut optionally return a parent 2022-11-24 22:16:27 -06:00
Evan Almloff 21edea62be add as_varient functions to OwnedAttributeValue 2022-11-24 17:43:55 -06:00
Evan Almloff 5f4b08496c update to taffy 0.2 2022-11-24 17:41:12 -06:00
Evan Almloff f9059c3f30 handle height 2022-11-24 17:41:07 -06:00
Evan Almloff dcad2fe8a2 intial update to new mutations 2022-11-24 15:05:15 -06:00
Evan Almloff 078b8ba833 work on seperating tree struture from realdom 2022-11-24 10:56:44 -06:00
David Craven 99dafdb8ee Build failure on master. (#627)
* Build failure on master.

* Fix ci failure.

* Fix test.

* Ignore broken tests.

* Fix doctests.
2022-11-22 09:56:15 -08:00
Demonthos 3b7b503333 Refactor Mutations and simplify Templates (#578)
* update mutations to be path based rather than renderer integrated
2022-10-18 14:42:45 -07:00
saicu e8c48d46cf replace fxhash crate with rustc-hash (#588) 2022-10-12 18:27:26 -07:00
Marc Espín e98f46bbcc Remove a Node listeners when it is removed (#576) 2022-10-02 14:12:33 -07:00
Demonthos daeffd4149 pass clippy (#575) 2022-10-02 14:12:24 -07:00
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
Demonthos 2d08532bad Improve documentation for the native core and native core macro crates (#528)
* improve documentation for the native core and native core macro crates

* fix spelling of depenency
2022-09-06 17:25:10 -07:00
Jonathan Kelley 62b9a0593f chore: use taffy dimension directly 2022-07-15 22:17:00 -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
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
Jonathan Kelley 8be66bd34d fix: apply some clippy lints and rename the liveview methods to not intersect 2022-06-20 02:24:39 -04:00
Evan Almloff 5d323cae78 Merge remote-tracking branch 'upstream/master' into tui_focus 2022-06-13 17:55:18 -05:00
Evan Almloff ce385965a7 Merge branch 'master' into tui_focus 2022-06-13 17:37:40 -05:00
Demonthos c1112cfd3a Merge branch 'master' into stretch2_relative_layout 2022-06-10 17:41:51 -05:00
Evan Almloff 44686e217f remove empty match 2022-06-10 17:33:19 -05:00
Evan Almloff dcfe60c164 use taffy instead of stretch2 2022-06-10 17:23:30 -05:00
Evan Almloff db1866090a fix broken doc links 2022-05-22 20:44:32 -05:00
Evan Almloff a5b9200e47 calculate absolute position 2022-05-10 18:13:05 -05:00
Evan Almloff 5d5e7f55fd pass clippy 2022-05-04 14:37:30 -05:00
Evan Almloff dd7784d205 clean up and document focus system 2022-05-04 14:28:02 -05:00