Introdução
Dioxus é uma estrutura portátil, de alto desempenho e ergonômica para a construção de interfaces de usuário multiplataforma no Rust. Este guia irá ajudá-lo a começar a escrever aplicativos Dioxus para a Web, Desktop, Mobile e muito mais.
#![allow(unused)] fn main() { fn app(cx: Scope) -> Element { let mut count = use_state(cx, || 0); cx.render(rsx!( h1 { "High-Five counter: {count}" } button { onclick: move |_| count += 1, "Up high!" } button { onclick: move |_| count -= 1, "Down low!" } )) } }
Dioxus é fortemente inspirado pelo React. Se você conhece o React, começar com o Dioxus será muito fácil.
Este guia pressupõe que você já conhece um pouco de Rust! Caso contrário, recomendamos ler the book para aprender Rust primeiro.
Recursos
- Aplicativos de desktop rodando nativamente (sem Electron!) em menos de 10 linhas de código.
- Gerenciamento de estado incrivelmente ergonômico e poderoso.
- Documentação em linha abrangente - documentação sob o mouse e guias para todos os elementos HTML e manipuladores de eventos.
- Extremamente eficiente de memória – 0 alocações globais para componentes de estado estacionário.
- Agendador assíncrono multicanal para suporte assíncrono de primeira classe.
- E mais! Leia as [notas de lançamento completa](https://dioxuslabs.com/blog/introducing-dioxus/.
Multi Plataforma
Dioxus é um kit de ferramentas portátil, o que significa que a implementação do núcleo pode ser executada em qualquer lugar sem independente da plataforma. Ao contrário de muitos outros kits de ferramentas de frontend Rust, o Dioxus não está intrinsecamente vinculado ao WebSys. Na verdade, todos os elementos e ouvintes de eventos podem ser trocados em tempo de compilação. Por padrão, o Dioxus vem com o recurso html
habilitado, mas isso pode ser desabilitado dependendo do seu renderizador de destino.
No momento, temos vários renderizadores de terceiros:
- WebSys (para WASM): Ótimo suporte
- Tao/Tokio (para aplicativos de desktop): Bom suporte
- Tao/Tokio (para aplicativos móveis): Suporte ruim
- SSR (para gerar marcação estática)
- TUI/Rink (para aplicativos baseados em terminal): Experimental
Estabilidade
Dioxus ainda não chegou a uma versão estável.
Web: como a Web é uma plataforma bastante madura, esperamos que haja muito pouca rotatividade de API para recursos baseados na Web.
Desktop: APIs provavelmente estarão em fluxo à medida que descobrimos padrões melhores do que nossa contraparte, ElectronJS.
SSR: Não esperamos que a API SSR mude drasticamente no futuro.