Commit graph

201 commits

Author SHA1 Message Date
Evan Almloff
351b9fab6f allow custom namespaces 2023-01-12 10:52:24 -06:00
=
9e45cbe4a7 remove the hot-reload-macro crate 2023-01-11 18:51:09 -06:00
Evan Almloff
1073574896 implement hot reloading for desktop 2023-01-11 13:40:02 -06:00
Jonathan Kelley
4f9d67fb45 feat: simple signals implementation 2023-01-01 19:57:33 -05:00
Jonathan Kelley
d3ab397ad3 chore: add transparency and overlay 2022-12-30 22:30:04 -05:00
Jonathan Kelley
c890051f87 chore: add back examples 2022-12-28 16:23:05 -05:00
Jonathan Kelley
bc3cf6501c feat: complete html to rsx rosetta 2022-12-28 16:22:20 -05:00
Jonathan Kelley
14bc007c15 wip: refactor out translation into its own crate 2022-12-28 11:51:41 -05:00
Jonathan Kelley
8d7d07db56 chore: make clippy happy in workspace crate 2022-12-19 11:56:44 -08:00
Jonathan Kelley
5c20e651da fix: get rollover working 2022-12-13 14:44:47 -08:00
Jonathan Kelley
f075a519cc chore: prevent publishing 2022-12-07 13:21:38 -08:00
Jonathan Kelley
6184ea500b chore: also fix native core 2022-12-07 13:20:31 -08:00
Jonathan Kelley
3b166c9edd wip: clean up some things 2022-11-30 23:54:30 -05:00
Jonathan Kelley
18d6b1ad6f feat: get web working properly 2022-11-30 17:21:10 -05:00
Jonathan Kelley
4a31b29703 feat: simple tests passing 2022-11-01 18:42:29 -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
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
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
Reinis Mazeiks
6c323e9fc5
Rework Guide (#486)
* Move getting started to Guide

* Clean up summary and getting started

* Shorten intro by moving stuff to individual platform docs

* Make intro even shorter, summarize features

* Further cleanup; move development-related docs to separate section

* Make `guide` a crate. Turn code samples into examples so that we can check if they compile

* Rewrite "Describing the UI":

* Focus on RSX syntax (interactivity covered in later chapters); make sure samples are tested; concise language

* Move some "special attribute" samples to the `examples` directory

* Simplify introduction to components

* Simplify introduction to component props

* Document Prop features; add code samples

* Simplify component children docs

* Interactivity: better introduction to events

* Hooks: better introduction

* Remove outdated doc

* Introducs use_ref

* Simplify User Input chapter

* Document event handler props

* Meme editor example

* Meme editor walkthrough

* Add dark mode example

* Guide for context; dark mode example

* Guide: custom hooks

* Guide: conditional rendering

* Guide: rendering lists

* Guide: rendering lists + keys

* Move remaining infor from Reference to guide

* Delete reference book
2022-07-07 08:50:36 +00:00
Jonathan Kelley
e627a66acc Merge branch 'master' into jk/autofmt 2022-06-30 15:23:05 -04: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
YuKun Liu
0af69f83f2 Rename hot_reload to hot-reload 2022-06-26 14:23:19 +08:00
Evan Almloff
6c20d74797 finish cleanup 2022-06-25 08:48:03 -05:00
Evan Almloff
fbf8e13b8d clean up imports 2022-06-25 08:27:10 -05:00
YuKun Liu
1c31fd0e22
Update Cargo.toml 2022-06-25 15:36:47 +08:00
Jonathan Kelley
5b9e34aadd feat: add fork of prettyplease for autoformatting 2022-06-24 14:22:08 -04: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
Demonthos
df4ea20bb8 create serde compatible parse error 2022-06-15 12:58:08 -05:00
Evan Almloff
017d269ca8 fix websocket error reporting 2022-06-09 09:36:28 -05:00
Evan Almloff
3cd4175e2e remove braces from captured variables 2022-06-05 08:39:50 -05: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
195dd22206 don't compile dioxus-router unless the router feature is enabled 2022-05-28 12:11:47 -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
13125fef4e restore dev dependancies 2022-05-27 17:54:36 -05:00
Evan Almloff
fb4cb1a05b remove autoformat 2022-05-25 14:02:43 -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
Jonathan Kelley
8ab1c4d0de feat: upgrade wry 2022-05-05 16:29:24 -04:00
Jonathan Kelley
4ef2cfaba5 fix: specify version 2022-05-03 00:05:54 -04: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
Evan Almloff
0b1e17c830 add native-core-macro to workspace 2022-05-02 20:25:29 -05:00
Jonathan Kelley
4fa909e864 feat: ensure parsing works with right indicies 2022-04-24 19:38:28 -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
Evan Almloff
c8919ad77b add benchmark 2022-04-20 21:44:37 -05:00
Evan Almloff
92f48169e9 WIP new api 2022-04-08 21:17:37 -05:00
Evan Almloff
5b25500c0b finishing touches and benchmarks 2022-03-30 20:45:41 -05:00