Jonathan Kelley
9c4abcbea0
wip: more tests!
2022-11-22 21:32:26 -08:00
Jonathan Kelley
642b21f125
suspense works in desktop
2022-11-16 11:48:47 -08:00
Jonathan Kelley
c6a6c3d0f8
feat: components pass thru children
2022-11-02 17:29:18 -07:00
Jonathan Kelley
4a31b29703
feat: simple tests passing
2022-11-01 18:42:29 -07:00
Demonthos
23c48cf795
render optimizations ( #585 )
2022-10-08 23:24:41 -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
28fba42e7e
feat: add an unhygenic render macro ( #556 )
...
* feat: add an unhygenic render macro
* chore: use render instead of rsx!(cx,
2022-09-25 01:05:16 -07:00
Demonthos
baf1807338
allow duplicate idents in format_args_f ( #515 )
2022-08-10 22:45:56 -07: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
2884d72b08
chore: make clippy happy
2022-07-02 23:45:32 -04:00
Evan Almloff
7730401288
fix escape sequences in ifmt
2022-06-28 12:19:07 -05:00
YuKun Liu
0af69f83f2
Rename hot_reload
to hot-reload
2022-06-26 14:23:19 +08:00
Evan Almloff
dd335cda59
use line!, col!, and row! instead of panic location
2022-06-20 15:44:10 -05:00
Evan Almloff
9e7e5b0859
Merge remote-tracking branch 'upstream/master' into jk/rsx-refactor
2022-06-16 09:17:36 -05:00
Demonthos
df4ea20bb8
create serde compatible parse error
2022-06-15 12:58:08 -05:00
Evan Almloff
2a6d9ed075
handle rsx!{cx, ...}
2022-06-05 07:38:05 -05:00
Evan Almloff
8c6fceb0c7
finish desktop implementation
2022-06-04 14:26:37 -05:00
Evan Almloff
2bcaa2e43e
refactor interperting macro into function and don't rely on cx being in scope
2022-06-04 12:20:56 -05:00
Muhannad Alrusayni
dded91a589
doc: put docs in once place instead of two
2022-06-04 13:40:50 +03:00
Muhannad Alrusayni
252f9343b8
fix: Support Div ()
as component
...
previously I from some reason I thought this not allowed syntax. Some test
failed because of my misunderstood, so now I fix this :D
2022-06-04 13:40:50 +03:00
Muhannad Alrusayni
03a14f4a86
fix: element start with lowercase letter again :D
2022-06-04 13:40:50 +03:00
Muhannad Alrusayni
062f986841
refactor: Remove unused types from scope
2022-06-04 13:40:50 +03:00
Muhannad Alrusayni
37f7fe2ac6
fix: Element must be of lowercase letters only
2022-06-04 13:40:50 +03:00
Muhannad Alrusayni
690efade88
fix: Support Input::<..>
style to for generic components
...
before that, we accepted this style `Input<..>` but to be consistent
with Rust syntax this is dropped now.
> For reference, the two ways of specifying explicit type parameters in
> Rust are:
> // for functions
> let _ = foo::<MyType>();
>
> // for structs
> let _ = Foo::<MyType> { ... };
>
> by @jkelleyrtp
2022-06-04 13:40:50 +03:00
Muhannad Alrusayni
5b079075d7
refactor: clean up commented code.
2022-06-04 13:40:50 +03:00
Muhannad Alrusayni
0b5b7f09db
feat: Support generic component with inline_props
with some limitation
2022-06-04 13:40:50 +03:00
Muhannad Alrusayni
a55b56b403
feat: Support generic components in rsx!()
macro
2022-06-04 13:40:50 +03:00
Evan Almloff
0079f7d18b
WIP: expose pipe for desktop
2022-06-02 13:33:08 -05:00
Evan Almloff
3b2ac82e8d
fix spelling of interpreter
2022-05-31 12:18:22 -05:00
Evan Almloff
b921dc4eec
call error handler when error occurs
2022-05-31 12:06:53 -05:00
Evan Almloff
51b87dafcc
derive serde for Errors and Location, and add error handler
2022-05-31 12:03:04 -05:00
Evan Almloff
94448ea4aa
handle formatting options
2022-05-30 18:32:57 -05:00
Evan Almloff
2183ecf3fb
better error handling
2022-05-29 08:04:08 -05:00
Evan Almloff
06390b9be5
allow rsx to be used outside of a proc_macro context
2022-05-28 12:10:32 -05:00
Evan Almloff
f9713b2fe9
Merge remote-tracking branch 'origin/master' into jk/rsx-refactor
2022-05-27 17:56:50 -05:00
Evan Almloff
94169083f5
use __varibles
2022-05-27 13:09:29 -05:00
Evan Almloff
3c7db0631b
handle iterators and nested rsx calls
2022-05-27 12:21:12 -05:00
Evan Almloff
a0c7e4d78a
add component support
2022-05-27 09:47:44 -05:00
Evan Almloff
5b0a60c294
handle expressions in attributes
2022-05-26 19:16:51 -05:00
Evan Almloff
62cca95905
update interperter to use CapuredContext
2022-05-26 17:02:36 -05:00
Evan Almloff
871f51f91b
It compiles
2022-05-25 14:08:59 -05:00
Evan Almloff
ca10d89670
add RsxTextIndex
2022-05-25 11:20:07 -05:00
Evan Almloff
c7c84da8ab
WIP hot reload
2022-05-25 08:58:59 -05:00
Evan Almloff
db1866090a
fix broken doc links
2022-05-22 20:44:32 -05:00
Jonathan Kelley
3febd42588
Release dioxus-core v0.2.1, dioxus-core-macro v0.2.1, dioxus-html v0.2.1, dioxus-interpreter-js v0.2.1, dioxus-desktop v0.2.3, dioxus-hooks v0.2.1, dioxus-liveview v0.1.0, dioxus-native-core v0.2.0, dioxus-native-core-macro v0.2.0, dioxus-router v0.2.3, dioxus-ssr v0.2.1, dioxus-tui v0.2.2, dioxus-web v0.2.1, fermi v0.2.1, dioxus v0.2.4
2022-05-02 23:57:20 -04:00
Jonathan Kelley
2a1970b3a9
feat: add prettyplease vendored and get basic test working
2022-04-24 02:55:20 -04:00
Jonathan Kelley
794f43ffee
concept: move rsx out to its own crate
2022-04-24 02:35:52 -04:00
Jonathan Kelley
24bca45612
fix: inline props should look for attributes
2022-04-09 19:41:29 -04:00