# Introdução ![dioxuslogo](./images/dioxuslogo_full.png) 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. ```rust, no_run 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](https://www.rust-lang.org/)! Caso contrário, recomendamos ler [_the book_](https://doc.rust-lang.org/book/ch01-00-getting-started.html) 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.