Commit Graph
80 Commits
Author SHA1 Message Date
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
Jonathan Kelley bbb6ee10de feat: make hydration more robust 2022-01-07 00:33:09 -05:00
Jonathan Kelley e2a6454527 chore: switch to log tracing 2022-01-05 16:36:42 -05:00
Jonathan Kelley cb2782b4bb wip: memoize dom in the prescence of identical components 2022-01-05 00:27:22 -05:00
Jonathan Kelley 4ea5c990d7 publish: new versions of everything 2022-01-03 19:44:04 -05:00
Jonathan Kelley 3de776c42a docs: fix the reference code 2022-01-03 13:26:15 -05:00
Jonathan Kelley 7abb3cc79c publish: dioxus web 2022-01-03 02:15:39 -05:00
Jonathan Kelley 420a30e5d4 feat: overhaul examples and clean things up 2022-01-03 00:42:17 -05:00
Jonathan Kelley a4f280d163 feat: more API updates 2021-12-28 23:20:01 -05:00
Jonathan Kelley fa106be1f5 wip: clean it up a bit 2021-12-21 00:58:14 -05:00
Jonathan Kelley a5f05d73ac wip: docs and router 2021-11-19 00:49:04 -05:00
Jonathan Kelley 19df1bda10 feat: bubbling 2021-11-15 09:49:01 -05:00
Jonathan Kelley f2234068ba feat: events bubble now 2021-11-11 22:07:38 -05:00
Jonathan Kelley fd93ee89c1 feat: upgrade syntax 2021-11-10 17:09:52 -05:00
Jonathan Kelley cfc24f5451 feat: support innerhtml 2021-10-18 18:07:19 -04:00