Commit Graph
100 Commits
Author SHA1 Message Date
Evan Almloff d64d92e4b4 disable rif raf 2022-12-07 07:24:51 -06:00
Evan Almloff 1081e4b772 Merge branch 'implement-new-mutations-with-native-core' into mutation-store 2022-12-06 14:24:40 -06:00
Evan Almloff 6102902387 work on optimizing web implementation 2022-12-06 14:24:35 -06:00
Evan Almloff 77381ceadd fix memory leak 2022-12-06 09:54:44 -06:00
Evan Almloff 4b1c6125d4 fix formatting 2022-12-06 09:16:40 -06:00
Evan Almloff 4be64cb9f0 fix gaps in layout 2022-12-06 09:08:25 -06:00
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 32e93dee65 tests passing 2022-12-06 08:27:32 -06:00
Evan Almloff ad33f2ce96 update tests 2022-12-05 21:36:24 -06:00
Evan Almloff 317aed7343 update remaining examples 2022-12-05 20:45:08 -06:00
Evan Almloff b1db7a6400 update all events example 2022-12-05 20:43:11 -06:00
Evan Almloff f10d47b53d update color picker example 2022-12-05 20:37:55 -06:00
Evan Almloff 57ef56511c ignore out of bounds renders 2022-12-05 20:30:05 -06:00
Evan Almloff a823b45af9 fix root node layout 2022-12-05 20:18:10 -06:00
Evan Almloff e6a11f50dd update more examples 2022-12-05 14:20:45 -06:00
Evan Almloff 094012b07d update benchmark 2022-12-05 14:04:13 -06:00
Evan Almloff 9a37da6393 update hover example 2022-12-05 13:53:43 -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 f21d099ae4 fix mask generation 2022-12-04 19:48:16 -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 80674e4566 Merge branch 'jk/templates-v3' into implement-new-mutations-with-native-core 2022-12-03 13:21:44 -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
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
Demonthos f21c8423eb optimizations for wasm size (#582)
* optimize for size

* fix tests

* revert log feature

* make backtrace not optional

* remove dev feature from web dev-deps
2022-11-16 22:22:13 -08:00
Demonthos f89cd20455 fix tui example links (#607) 2022-10-28 18:06:39 -07: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
Demonthos 020c4bf0f8 fix bug with dynamic nodes after fragments (#591) 2022-10-15 11:00:56 -07:00
Demonthos ab10d327ac Fix attribute value in macro (#577)
* create into AttributeValue trait to allow arbitraty attribute values

* allow attributevalue in non-template macro
2022-10-12 20:43:37 -07:00
Demonthos 23c48cf795 render optimizations (#585) 2022-10-08 23:24:41 -07:00
Demonthos 928b5358b2 allow arbitrary attribute value in owned attribute value (#574) 2022-10-02 14:13:06 -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 b32fd2d2cd fix scroll data (#569) 2022-09-30 10:48:52 -07:00
Evan Almloff c0b9b54d9b allow custom string literals to be captured for hot reloading 2022-07-01 10:51:11 -05:00
Evan Almloff f0655a11ad panic on errors in hot-reload if no error handler socket is connected 2022-07-01 09:01:15 -05:00
Evan Almloff ab533864db Merge remote-tracking branch 'upstream/master' into fix_hot_reloading_svg_attributes 2022-06-30 07:18:08 -05:00
Evan Almloff e444d3d4bc fix svg attributes 2022-06-30 07:17:59 -05:00
Evan Almloff 74fc28e5d1 add tests for diffing listeners 2022-06-29 10:09:37 -05:00
Evan Almloff bf548d4a0e set id before creating listener 2022-06-29 09:48:16 -05:00
Evan Almloff 58a495351a check that an node is an element before removing listeners 2022-06-29 09:09:47 -05:00
Evan Almloff cf2f504d77 fix unnessisary mut 2022-06-28 12:48:38 -05:00
Evan Almloff f1f9f0df1a pass clippy 2022-06-28 12:37:19 -05:00
Evan Almloff 7730401288 fix escape sequences in ifmt 2022-06-28 12:19:07 -05:00
Evan Almloff 8c3c75cab6 update tests 2022-06-28 10:02:50 -05:00
Evan Almloff 884723831b fix path seperator 2022-06-28 09:48:19 -05:00
Evan Almloff 706b6c957b change hot_reload to hot-reload in dev-dependancies 2022-06-26 07:26:03 -05:00
Evan Almloff 041f474329 Merge remote-tracking branch 'upstream/master' into clean_up_rsx_imports 2022-06-26 07:22:55 -05:00
Evan Almloff 9a963bba0a update router test imports 2022-06-25 11:17:26 -05:00
Evan Almloff 02756f6f92 fix key parsing 2022-06-25 10:14:36 -05:00
Evan Almloff 6c20d74797 finish cleanup 2022-06-25 08:48:03 -05:00
Evan Almloff ef4ece42b3 Merge remote-tracking branch 'upstream/master' into clean_up_rsx_imports 2022-06-25 08:27:32 -05:00
Evan Almloff fbf8e13b8d clean up imports 2022-06-25 08:27:10 -05:00
Evan Almloff c52a9334cb fix tui tests 2022-06-24 14:05:19 -05:00
Evan Almloff 2d45e1dc8d add bubbling data to events after merge 2022-06-22 14:24:03 -05:00
Evan Almloff 11d9a7d013 Merge remote-tracking branch 'upstream/master' into fix_nonbubbling_web_events 2022-06-22 13:59:10 -05:00
Evan Almloff 61b4bb2f19 handle bubbling events 2022-06-22 13:57:05 -05:00
Evan Almloff dd335cda59 use line!, col!, and row! instead of panic location 2022-06-20 15:44:10 -05:00
Evan Almloff 21206390f8 more formatting 2022-06-17 15:33:28 -05:00
Evan Almloff f7b2869082 fix formatting 2022-06-17 15:15:02 -05:00
Evan Almloff ffc9bf763a pass clippy 2022-06-17 13:50:41 -05:00
Evan Almloff 0f2ff34a30 add tests for the interperter 2022-06-17 09:50:25 -05:00
Evan Almloff 9be8cc503f restore router 2022-06-16 21:08:48 -05:00
Evan Almloff 79ddab2720 restore dev-dependancies 2022-06-16 21:07:18 -05:00
Evan Almloff 9e7e5b0859 Merge remote-tracking branch 'upstream/master' into jk/rsx-refactor 2022-06-16 09:17:36 -05:00
Evan Almloff 75e13749ea set multiple rsx calls at once to prevent duplicated errors 2022-06-16 09:11:56 -05:00
Evan Almloff b761bdb767 include element/attribute in errors 2022-06-15 14:20:36 -05:00
Evan Almloff d9ee305575 offset column numbers 2022-06-15 13:36:18 -05:00
Evan Almloff 8670f05968 Merge branch 'tui_mouse_events_fix' into tui_focus 2022-06-15 08:31:04 -05:00
Evan Almloff 8e6b56c636 remove outdated comment 2022-06-14 20:57:43 -05:00
Evan Almloff 41e905144c add warning when hot_reload is used in release builds 2022-06-14 10:32:49 -05:00
Evan Almloff d422a23c94 add a chapter in the refrence 2022-06-14 09:55:46 -05:00
Evan Almloff 3dc68ffd76 add tests 2022-06-13 19:55:57 -05:00
Evan Almloff 1d699b0b6e fix absolute position for mouse events 2022-06-13 19:42:03 -05: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
Evan Almloff 586983291a log parse errors 2022-06-13 17:02:43 -05:00
Evan Almloff f132a08f7d fix merge 2022-06-13 16:50:22 -05:00