c866ae602b
* Add `#[component]` attribute + system for creating component attributes + other stuff * Delete inlineprops.rs * Update inline_props.rs * Cargo fmt * Fix clippy warnings and paths in props/mods.rs * Include where clause in `#[inline_props]` output * Allow Clippy type complexity in `LinkProps` * Allow the type complexity lint for the entire link.rs file * Remove snake_case -> PascalCase converter, but rather enforce PascalCase Also: - Put the second function inside the main one instead of besides it. - Simplify * Simplify type check lints so they don't return false positives They will not always work, but they won't return any false positives, like for aliases. This is likely going to be replaced by a more polished Clippy-backed linting system. * Fix #583 * Cargo fmt * Add docs for `deserialize()` and remove useless comment * Add `#[component]` to prelude * Merge branch 'master' of https://github.com/tigerros/dioxus * #[inline_props] is no more. Except in the docs folder, but that's going to be removed * Remove docs folder * Remove docs from workspace * Resolve `DeserializerOutput` conversation |
||
---|---|---|
.. | ||
assets | ||
mobile_demo | ||
PWA-example | ||
query_segments_demo | ||
tailwind | ||
all_css.rs | ||
all_events.rs | ||
borrowed.rs | ||
button.rs | ||
calculator.rs | ||
callback.rs | ||
clock.rs | ||
compose.rs | ||
control_focus.rs | ||
counter.rs | ||
crm.rs | ||
custom_assets.rs | ||
custom_html.rs | ||
disabled.rs | ||
dog_app.rs | ||
drops.rs | ||
error_handle.rs | ||
eval.rs | ||
fermi.rs | ||
file_explorer.rs | ||
file_upload.rs | ||
filedragdrop.rs | ||
flat_router.rs | ||
form.rs | ||
framework_benchmark.rs | ||
generic_component.rs | ||
heavy_compute.rs | ||
hello_world.rs | ||
hydration.rs | ||
inlineprops.rs | ||
inputs.rs | ||
link.rs | ||
login_form.rs | ||
multiwindow.rs | ||
nested_listeners.rs | ||
optional_props.rs | ||
overlay.rs | ||
pattern_model.rs | ||
pattern_reducer.rs | ||
read_size.rs | ||
README.md | ||
readme.rs | ||
router.rs | ||
rsx_compile_fail.rs | ||
rsx_usage.rs | ||
scroll_to_top.rs | ||
shared_state.rs | ||
shortcut.rs | ||
signals.rs | ||
simple_desktop.rs | ||
simple_list.rs | ||
simple_router.rs | ||
ssr.rs | ||
suspense.rs | ||
svg.rs | ||
svg_basic.rs | ||
tasks.rs | ||
textarea.rs | ||
todomvc.rs | ||
web_component.rs | ||
window_event.rs | ||
window_focus.rs | ||
window_zoom.rs | ||
xss_safety.rs |
Examples
These examples are fully-fledged mini Dioxus apps.
You can run them with cargo run --example EXAMPLE_NAME
. Example:
cargo run --example hello_world
(Most of these examples are run through webview, so you don't need the Dioxus CLI installed)
Basic Features
hello_world - Most basic example
readme - Counter example from the Readme
custom_assets - Include images
custom_html - Customize wrapper HTML
eval - Evaluate JS expressions
RSX
rsx_usage - Demo of all RSX features
xss_safety - You can include text without worrying about injections by default
Props
borrowed - Borrowed props
inlineprops - Demo of inline_props
macro
optional_props - Optional props
CSS
all_css - You can specify any CSS attribute
tailwind - You can use a library for styling
Input Handling
all_events - Basic event handling demo
filedragdrop - Handle dropped files
form - Handle form submission
inputs - Input values
nested_listeners - Nested handlers and bubbling
textarea - Text area input
State Management
fermi - Fermi library for state management
pattern_reducer - The reducer pattern with use_state
Async
login_form - Login endpoint example
suspense - Render placeholders while data is loading
tasks - Continuously run future
SVG
Performance
framework_benchmark - Renders a huge list
Note: The benchmark should be run in release mode:
cargo run --example framework_benchmark --release
heavy_compute - How to deal with expensive operations
Server-side rendering
ssr - Rendering RSX server-side
hydration - Pre-rendering with hydration
Common Patterns
disabled - Disable buttons conditionally
error_handle - Handle errors with early return
Routing
flat_router - Basic, flat route example
router - Router example
link - Internal, external and custom links
Platform Features
window_event - Window decorations, fullscreen, minimization, etc.
window_zoom – Zoom in or out
Example Apps
calculator - Simple calculator
pattern_model - Simple calculator, but using a custom struct as the model
crm - Toy multi-page customer management app
dog_app - Accesses dog API
file_explorer - File browser that uses use_ref
to interact with the model
todomvc - Todo task list example
TODO
Missing Features
- Fine-grained reactivity
- Refs - imperative handles to elements
- Function-driven children: Pass functions to make VNodes
Missing examples
- Shared state
- Root-less element groups
- Spread props
- Custom elements
- Component Children: Pass children into child components
- Render To string: Render a mounted virtualdom to a string
- Testing and Debugging