Commit Graph
94 Commits
Author SHA1 Message Date
Jonathan Kelley d4b6bb8a7b feat: fix the scope rollover bug 2022-12-12 18:31:30 -08:00
Evan Almloff 99a4a9d45b Merge branch 'upstream' into optimize-templates-v3 2022-12-07 18:29:02 -06:00
Evan Almloff b79ad4f50e Merge remote-tracking branch 'upstream/master' into optimize-templates-v3 2022-12-07 17:20:31 -06:00
Jonathan Kelley 4eefc3f854 chore: rename all &cx to cx, make clipppy happy 2022-12-07 13:11:40 -08:00
Jonathan Kelley 1b14b309e9 chore: clean up desktop 2022-12-06 16:37:28 -08:00
Evan Almloff 6102902387 work on optimizing web implementation 2022-12-06 14:24:35 -06:00
Jonathan Kelley b182a6ee75 chore: clean up interpreter and bindings 2022-12-05 16:47:04 -08:00
Jonathan Kelley 7b1cdb7d85 feat: get desktop working with new template strategy 2022-12-05 16:08:41 -08:00
Jonathan Kelley a61daf220d feat: context api overhaul 2022-12-02 16:24:49 -08:00
Jonathan Kelley 11a45c8ef0 chore: continue to clean things up 2022-12-01 01:08:49 -05:00
Jonathan Kelley 85657d3906 feat: rip out mutations for templates 2022-12-01 00:46:15 -05:00
Jonathan Kelley 3b166c9edd wip: clean up some things 2022-11-30 23:54:30 -05:00
Jonathan Kelley ba26b1001a chore: clean up web impl 2022-11-30 17:44:00 -05:00
Jonathan Kelley 18d6b1ad6f feat: get web working properly 2022-11-30 17:21:10 -05: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 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 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
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
Evan Almloff 61b4bb2f19 handle bubbling events 2022-06-22 13:57:05 -05:00
Reinis Mazeiks f792ed7a17 Update virtual_event_from_websys_event based on make_synthetic_event in the desktop crate 2022-05-23 10:12:12 +03:00
Reinis Mazeiks 60e74b2ec0 Add missing event types to web (copied from desktop)
Related: #416
2022-05-23 10:12:11 +03:00
Jonathan Kelley 356f37e9ee feat: arbitrary attributes 2022-05-05 16:50:33 -04:00
Jon Kelley c4a19f71af Merge branch 'master' into master 2022-04-23 23:08:58 -04:00
Jonathan Kelley dfc69c0905 fix: compile fail for web 2022-04-04 12:29:00 -04:00
Jon Kelley 6c72ed5dd3 Merge pull request #333 from naturalethic/fix-incorrect-form-element-pointer
Fix form value collecting from form element instead of input element
2022-03-28 11:04:37 -04:00
Joshua Kifer 213f54c4d8 Convert all logs to trace 2022-03-27 09:23:44 -06:00
Joshua Kifer 2acacdd5a4 Fix form value collecting from form element instead of input element 2022-03-26 19:42:05 -06:00
Joshua Kifer ab4e37fbf2 Capture correct radio button value in a form input event 2022-03-19 12:24:29 -06:00
Shuanghui Yan 4eeb3da8c9 fix: add ns param for removeAttribute 2022-02-22 23:14:11 +08:00
Jonathan Kelley e43a8a9b6a feat: remove old async channel for new channel in ric raf web code 2022-02-15 11:03:13 -05:00
Aster 8d42191d7a Add From trait to convert web_sys Events to html Data 2022-02-12 20:57:13 +08:00
t1m0t eb39f360e3 fix some uncaught error during runtime test 2022-02-11 17:59:59 +01:00
Jonathan Kelley 4f46089fce feat: use serde-wasm-bindgen crate for speedup 2022-02-07 10:17:16 -05:00
Jonathan Kelley 169f1dac11 Merge branch 'master' into jk/form-ma 2022-02-04 18:10:26 -05:00
Jonathan Kelley d758dc6065 feat: form works in web 2022-02-04 02:13:35 -05:00
Jonathan Kelley ca0d7dc268 fix: remove code generation 2022-02-04 01:56:54 -05:00
Jonathan Kelley 8f9d15db4a feat: enable form elements in web 2022-02-02 02:00:53 -05:00
Jonathan Kelley 7c06b3a9a2 Merge branch 'master' into jk/form-ma 2022-02-01 15:24:19 -05:00
Jonathan Kelley 8badf90a03 fix: dioxus web prevents default on in nested targets
this commit fixes an issue where we used the event target to
prevent default even if the target element wasn't an event
handler.
2022-01-31 15:53:06 -05:00
Jonathan Kelley f66d17ca84 wip: pass form data between web and desktop 2022-01-22 14:53:59 -05:00
Jonathan Kelley 95e93ed0bc feat: remove dioxus id on non-event elements 2022-01-21 15:06:57 -05:00
Jonathan Kelley 824defa2db Merge branch 'master' into jk/unify 2022-01-21 00:16:45 -05:00
Jonathan Kelley c1a5d4e11f fix: ssr + hydration event listeners 2022-01-20 04:01:38 -05:00
Jonathan Kelley 05331ddd80 feat: wire up both desktop and web 2022-01-13 22:51:01 -05:00
Jonathan Kelley 10db6ad65b wip: web now links against the js interprter code 2022-01-12 08:57:42 -05:00
YuKun Liu 92561612c7 fix: format code 2022-01-09 02:25:11 +08:00
YuKun Liu 8f4aa84f1a feat: bool attr white list 2022-01-09 02:02:23 +08:00
Jonathan Kelley 21232285d9 fix: add exclusion list 2022-01-08 02:14:05 -05:00
Jonathan Kelley 8d685f40b7 feat: handle bool attrs properly 2022-01-08 02:09:02 -05:00