Setting Up Hot Reload

  1. Hot reloading allows much faster iteration times inside of rsx calls by interpreting them and streaming the edits.
  2. It is useful when changing the styling/layout of a program, but will not help with changing the logic of a program.
  3. Currently the cli only implements hot reloading for the web renderer. For TUI, desktop, and LiveView you can use the hot reload macro instead.

Web

For the web renderer, you can use the dioxus cli to serve your application with hot reloading enabled.

Setup

Install dioxus-cli. Hot reloading is automatically enabled when using the web renderer on debug builds.

Usage

  1. Run:
dioxus serve --hot-reload
  1. Change some code within a rsx or render macro
  2. Open your localhost in a browser
  3. Save and watch the style change without recompiling

Desktop/Liveview/TUI

Desktop, LiveView, and TUI currently only support hot reloading on the git version of dioxus. If you are interested in using hot reloading on these renderers, try installing the git version of dioxus and following the nightly guide.

Usage

  1. Run:
cargo run
  1. Change some code within a rsx or render macro
  2. Save and watch the style change without recompiling

Limitations

  1. The interpreter can only use expressions that existed on the last full recompile. If you introduce a new variable or expression to the rsx call, it will require a full recompile to capture the expression.
  2. Components, Iterators, and some attributes can contain arbitrary rust code and will trigger a full recompile when changed.