Jonathan Kelley
7cbb4d52dd
wip: more modifications to templates
2022-10-21 18:54:14 -07:00
Jonathan Kelley
90982e0ccb
wip: start to refactor out hot reloading from packages
...
Also implement alternative simpler template system
2022-10-20 09:56:09 -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
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
Jonathan Kelley
356f37e9ee
feat: arbitrary attributes
2022-05-05 16:50:33 -04:00
Jonathan Kelley
255f58af63
fix: ssr respects bool attrs
2022-01-10 01:32:32 -05:00
Alexandre Kirszenberg
b6903bf558
Enable clippy
2022-01-08 16:35:26 +01:00
Jonathan Kelley
c6e917c4a0
tweak: add palceholder as comment content
2022-01-07 00:37:28 -05:00
Jonathan Kelley
b3a774b284
tweak: always add spacing comments between textnodes
2022-01-07 00:37:04 -05:00
Jonathan Kelley
dbb6e9b4fe
fix: lastnodewastext in ssr
2022-01-07 00:36:13 -05:00
Jonathan Kelley
bbb6ee10de
feat: make hydration more robust
2022-01-07 00:33:09 -05:00
Jonathan Kelley
bd341f5571
fix: tests
2022-01-05 17:30:12 -05:00
Jonathan Kelley
420a30e5d4
feat: overhaul examples and clean things up
2022-01-03 00:42:17 -05:00
Jonathan Kelley
d1560450ba
wip: remove runner on hook and then update docs
2022-01-02 02:15:04 -05:00
Jonathan Kelley
4c85bcfdc8
awesome: arbitrary expressions excepted without braces
2021-12-30 03:14:47 -05:00
Jonathan Kelley
3dc0e59876
fix: readme and examples syntax
2021-12-28 23:48:25 -05:00
Jonathan Kelley
b997b8ebbb
feat: enable children properly
2021-12-21 00:46:10 -05:00
Jonathan Kelley
e2e4d431e1
wip: adjust memoization
2021-12-20 22:33:13 -05:00
Jonathan Kelley
4de16c4779
docs: update local examples and docs to support new syntaxes
2021-12-15 15:56:53 -05:00
Jonathan Kelley
ded9696930
wip: fix ssr
2021-12-14 22:48:20 -05:00
Jonathan Kelley
1e4a599d14
wip: rename fc to component
2021-12-09 21:19:31 -05:00
Jonathan Kelley
36d89beb34
wip: rename
2021-11-28 16:25:42 -05:00
Jonathan Kelley
93d4b8ca7c
wip: some docs and suspense
2021-11-23 15:53:57 -05:00
Jonathan Kelley
a5f05d73ac
wip: docs and router
2021-11-19 00:49:04 -05:00
Jonathan Kelley
fd93ee89c1
feat: upgrade syntax
2021-11-10 17:09:52 -05:00
Jonathan Kelley
1e6e5e611b
wip: move examples around
2021-11-03 15:13:50 -04:00
Jonathan Kelley
cfc24f5451
feat: support innerhtml
2021-10-18 18:07:19 -04:00
Jonathan Kelley
d4dcb17567
wip: clean up and add lazy renderer
2021-10-18 17:46:31 -04:00
Jonathan Kelley
63568c546c
feat: add more to ssr renderer
2021-10-18 12:53:56 -04:00
Jonathan Kelley
9726a065b0
feat: massage lifetimes
2021-10-16 17:37:28 -04:00
Jonathan Kelley
71f0df6374
publish: ssr
2021-09-24 22:15:50 -04:00
Jonathan Kelley
7bdad1e2e6
publish: move macro crate out of core
2021-09-24 21:46:23 -04:00
Jonathan Kelley
a2c7d17b05
feat: mvoe away from compound context
2021-09-21 13:42:52 -04:00
Jonathan Kelley
ff1398b943
wip: polish up some safety stuff and add suspense support in
2021-09-13 18:55:43 -04:00
Jonathan Kelley
c321532a6c
feat: some docs, cleaning
2021-09-01 00:57:04 -04:00
Jonathan Kelley
31702dbf87
feat: wire up resource pool
2021-08-27 09:53:26 -04:00
Jonathan Kelley
f457b71131
feat: rebuild doesn't return errors
2021-08-24 15:12:20 -04:00
Jonathan Kelley
cdcd8611e8
wip: it works but the page is backwards
2021-08-24 12:43:46 -04:00
Jonathan Kelley
64f289a61c
wip: back to vnode enum
2021-08-20 10:34:41 -04:00
Jonathan Kelley
cfa0247cbb
wip: websys dom working properly
2021-07-30 17:04:04 -04:00
Jonathan Kelley
d618092e9d
feat: a new vnode type for anchors
2021-07-29 18:04:09 -04:00
Jonathan Kelley
49856ccd68
wip: making progress on diffing and hydration
2021-07-28 21:46:53 -04:00
Jonathan Kelley
dfaf5adee1
Feat: solve some issues regarding listeners
2021-07-24 00:29:23 -04:00
Jonathan Kelley
f644d7c441
wip: move things into a "shared" object
2021-07-23 10:27:43 -04:00
Jonathan Kelley
1745a44d94
wip: cleanup
2021-07-21 17:05:48 -04:00
Jonathan Kelley
05c909f320
wip: some ideas
2021-07-18 03:54:42 -04:00
Jonathan Kelley
8f0bb5dc5b
chore: cleanup workspace
2021-07-15 18:40:12 -04:00
Jonathan Kelley
f14d4ef7c2
wip: fix styling for ssr
2021-07-15 11:06:52 -04:00
Jonathan Kelley
00231adfa2
feat: code quality improvements for core
2021-07-15 04:09:28 -04:00