2022-11-30 19:39:13 +00:00
|
|
|
|
<p align="center">
|
|
|
|
|
<img src="../header.svg">
|
|
|
|
|
</p>
|
2022-01-13 04:16:17 +00:00
|
|
|
|
|
|
|
|
|
<div align="center">
|
|
|
|
|
<!-- Crates version -->
|
|
|
|
|
<a href="https://crates.io/crates/dioxus">
|
|
|
|
|
<img src="https://img.shields.io/crates/v/dioxus.svg?style=flat-square"
|
|
|
|
|
alt="Crates.io version" />
|
|
|
|
|
</a>
|
|
|
|
|
<!-- Downloads -->
|
|
|
|
|
<a href="https://crates.io/crates/dioxus">
|
|
|
|
|
<img src="https://img.shields.io/crates/d/dioxus.svg?style=flat-square"
|
|
|
|
|
alt="Download" />
|
|
|
|
|
</a>
|
|
|
|
|
<!-- docs -->
|
|
|
|
|
<a href="https://docs.rs/dioxus">
|
|
|
|
|
<img src="https://img.shields.io/badge/docs-latest-blue.svg?style=flat-square"
|
|
|
|
|
alt="docs.rs docs" />
|
|
|
|
|
</a>
|
|
|
|
|
<!-- CI -->
|
|
|
|
|
<a href="https://github.com/jkelleyrtp/dioxus/actions">
|
|
|
|
|
<img src="https://github.com/dioxuslabs/dioxus/actions/workflows/main.yml/badge.svg"
|
|
|
|
|
alt="CI status" />
|
|
|
|
|
</a>
|
|
|
|
|
|
|
|
|
|
<!--Awesome -->
|
|
|
|
|
<a href="https://github.com/dioxuslabs/awesome-dioxus">
|
|
|
|
|
<img src="https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg" alt="Awesome Page" />
|
|
|
|
|
</a>
|
|
|
|
|
<!-- Discord -->
|
|
|
|
|
<a href="https://discord.gg/XgGxMSkvUM">
|
2022-01-25 18:17:43 +00:00
|
|
|
|
<img src="https://img.shields.io/discord/899851952891002890.svg?logo=discord&style=flat-square" alt="Discord Link" />
|
2022-01-13 04:16:17 +00:00
|
|
|
|
</a>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div align="center">
|
|
|
|
|
<h3>
|
2022-11-30 19:39:13 +00:00
|
|
|
|
<a href="https://dioxuslabs.com"> 官方网站 </a>
|
2022-01-13 04:16:17 +00:00
|
|
|
|
<span> | </span>
|
2022-11-30 19:39:13 +00:00
|
|
|
|
<a href="https://github.com/DioxusLabs/example-projects"> 代码示例 </a>
|
|
|
|
|
<span> | </span>
|
|
|
|
|
<a href="https://dioxuslabs.com/guide"> 开发指南 </a>
|
2022-01-13 04:16:17 +00:00
|
|
|
|
<span> | </span>
|
|
|
|
|
<a href="https://github.com/DioxusLabs/dioxus/blob/master/README.md"> English </a>
|
|
|
|
|
<span> | </span>
|
2022-11-30 19:39:13 +00:00
|
|
|
|
<a href="https://github.com/DioxusLabs/dioxus/blob/master/translations/pt-br/README.md"> PT-BR </a>
|
2022-01-13 04:16:17 +00:00
|
|
|
|
</h3>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<br/>
|
|
|
|
|
|
2022-11-30 19:39:13 +00:00
|
|
|
|
Dioxus 是一个可移植的、高性能的、符合人体工程学的框架,使用 Rust 语言构建跨平台的用户界面。
|
2022-01-13 04:16:17 +00:00
|
|
|
|
|
|
|
|
|
```rust
|
|
|
|
|
fn app(cx: Scope) -> Element {
|
2022-12-07 21:11:40 +00:00
|
|
|
|
let mut count = use_state(cx, || 0);
|
2022-01-13 04:16:17 +00:00
|
|
|
|
|
2022-04-17 03:59:29 +00:00
|
|
|
|
cx.render(rsx! {
|
2022-01-13 04:16:17 +00:00
|
|
|
|
h1 { "High-Five counter: {count}" }
|
2022-04-17 03:59:29 +00:00
|
|
|
|
button { onclick: move |_| count += 1, "Up high!" }
|
|
|
|
|
button { onclick: move |_| count -= 1, "Down low!" }
|
|
|
|
|
})
|
2022-01-13 04:16:17 +00:00
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
|
2022-11-30 19:39:13 +00:00
|
|
|
|
Dioxus 可用于生成 网页前端、桌面应用、静态网站、移动端应用、TUI程序、等多类平台应用。
|
2022-01-13 04:16:17 +00:00
|
|
|
|
|
2022-11-30 19:39:13 +00:00
|
|
|
|
如果你能够熟悉使用 React 框架,那 Dioxus 对你来说将非常简单。
|
2022-01-13 04:16:17 +00:00
|
|
|
|
|
2022-11-30 19:39:13 +00:00
|
|
|
|
## 独特的特性:
|
|
|
|
|
- 桌面程序完全基于本地环境运行(并非 Electron 的封装)
|
|
|
|
|
- 符合人体工程学的设计以及拥有强大的状态管理
|
|
|
|
|
- 全面的内联文档 - 包含所有 HTML 元素、监听器 和 事件 指南。
|
|
|
|
|
- 极快的运行效率和极高的内存效率
|
|
|
|
|
- 智能项目热更新和高效的项目迭代
|
|
|
|
|
- 一流的异步支持🔥
|
|
|
|
|
- 更多内容请查看 [版本发布信息](https://dioxuslabs.com/blog/introducing-dioxus/).
|
2022-01-13 04:16:17 +00:00
|
|
|
|
|
2022-11-30 19:39:13 +00:00
|
|
|
|
## 已支持的平台
|
|
|
|
|
<div align="center">
|
|
|
|
|
<table style="width:100%">
|
2022-01-13 04:16:17 +00:00
|
|
|
|
<tr>
|
2022-11-30 19:39:13 +00:00
|
|
|
|
<td><em>网站项目</em></td>
|
|
|
|
|
<td>
|
|
|
|
|
<ul>
|
|
|
|
|
<li>使用 WebAssembly 直接对 DOM 进行渲染</li>
|
|
|
|
|
<li>为 SSR 提供预渲染或作为客户端使用</li>
|
|
|
|
|
<li>简单的 "Hello World" 仅仅 65kb, 媲美 React 框架</li>
|
|
|
|
|
<li>CLI 提供热更新支持,方便项目快速迭代</li>
|
|
|
|
|
</ul>
|
|
|
|
|
</td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr>
|
|
|
|
|
<td><em>桌面应用</em></td>
|
|
|
|
|
<td>
|
|
|
|
|
<ul>
|
|
|
|
|
<li>使用 Webview 进行渲染 或 使用 WGPU 和 Skia(试验性的)</li>
|
|
|
|
|
<li>无多余配置,使用 `cargo build` 即可快速构建</li>
|
|
|
|
|
<li>对原生系统的全面支持</li>
|
|
|
|
|
<li>支持 Macos、Linux、Windows 等系统,极小的二进制文件</li>
|
|
|
|
|
</ul>
|
|
|
|
|
</td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr>
|
|
|
|
|
<td><em>移动端应用</em></td>
|
|
|
|
|
<td>
|
|
|
|
|
<ul>
|
|
|
|
|
<li>使用 Webview 进行渲染 或 使用 WGPU 和 Skia(试验性的)</li>
|
|
|
|
|
<li>支持 IOS 和 安卓系统</li>
|
|
|
|
|
<li><em>显著的</em> 性能强于 React Native 框架 </li>
|
|
|
|
|
</ul>
|
|
|
|
|
</td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr>
|
|
|
|
|
<td><em>Liveview</em></td>
|
|
|
|
|
<td>
|
|
|
|
|
<ul>
|
|
|
|
|
<li>使用服务器渲染组件与应用程序</li>
|
|
|
|
|
<li>与受欢迎的后端框架进行融合(Axum、Wrap)</li>
|
|
|
|
|
<li>及低的延迟</li>
|
|
|
|
|
</ul>
|
|
|
|
|
</td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr>
|
|
|
|
|
<td><em>终端程序</em></td>
|
|
|
|
|
<td>
|
|
|
|
|
<ul>
|
|
|
|
|
<li>在终端程序中渲染,类似于: <a href="https://github.com/vadimdemedes/ink"> ink.js</a></li>
|
|
|
|
|
<li>支持 CSS 相关模型(类似于浏览器内的)</li>
|
|
|
|
|
<li>Built-in widgets like text input, buttons, and focus system</li>
|
|
|
|
|
</ul>
|
|
|
|
|
</td>
|
|
|
|
|
</tr>
|
|
|
|
|
</table>
|
|
|
|
|
</div>
|
2022-01-13 04:16:17 +00:00
|
|
|
|
|
2022-11-30 19:39:13 +00:00
|
|
|
|
## Why Dioxus?
|
2022-01-13 04:16:17 +00:00
|
|
|
|
|
2022-11-30 19:39:13 +00:00
|
|
|
|
目前有非常多的应用开发选择,为什么偏偏要选择 Dioxus 呢?
|
2022-01-13 04:16:17 +00:00
|
|
|
|
|
2022-11-30 19:39:13 +00:00
|
|
|
|
首先,Dioxus将开发者的经验放在首位。这反映在 Dioxus 特有的各种功能上。
|
2022-01-13 04:16:17 +00:00
|
|
|
|
|
2022-11-30 19:39:13 +00:00
|
|
|
|
- 自动格式化 RSX 格式代码,并拥有 VSCode 插件作为支持。
|
|
|
|
|
- 热加载基于 RSX 代码解析器,同时支持桌面程序和网页程序。
|
|
|
|
|
- 强调文档的重要性,我们对所有 HTML 元素都提供文档支持。
|
2022-01-13 04:16:17 +00:00
|
|
|
|
|
2022-11-30 19:39:13 +00:00
|
|
|
|
Dioxus 也是一个可扩展化的平台。
|
2022-01-13 04:16:17 +00:00
|
|
|
|
|
2022-11-30 19:39:13 +00:00
|
|
|
|
- 通过实现一个非常简单的优化堆栈机,轻松构建新的渲染器。
|
|
|
|
|
- 构建并分享开发者自定义的组件代码。
|
2022-01-13 04:16:17 +00:00
|
|
|
|
|
2022-11-30 19:39:13 +00:00
|
|
|
|
Dioxus 那么优秀,但什么时候它不适合我呢?
|
|
|
|
|
- 它还没有完全成熟。api仍在变化,可能会出现故障(尽管我们试图避免)
|
|
|
|
|
- 您需要运行在 no-std 的环境之中。
|
|
|
|
|
- 你不喜欢使用 React-like 的方式构建 UI 项目。
|
2022-01-13 04:16:17 +00:00
|
|
|
|
|
|
|
|
|
|
2022-11-30 19:39:13 +00:00
|
|
|
|
## 贡献代码
|
|
|
|
|
- 在我们的 [问题追踪](https://github.com/dioxuslabs/dioxus/issues) 中汇报你遇到的问题。
|
|
|
|
|
- 加入我们的 Discord 与我们交流。
|
2022-02-05 00:50:15 +00:00
|
|
|
|
|
|
|
|
|
|
2022-11-30 19:39:13 +00:00
|
|
|
|
<a href="https://github.com/dioxuslabs/dioxus/graphs/contributors">
|
|
|
|
|
<img src="https://contrib.rocks/image?repo=dioxuslabs/dioxus&max=30&columns=10" />
|
|
|
|
|
</a>
|
2022-01-13 04:16:17 +00:00
|
|
|
|
|
2022-12-01 17:06:53 +00:00
|
|
|
|
## 开源协议
|
|
|
|
|
|
|
|
|
|
本项目使用 [MIT license].
|
2022-01-13 04:16:17 +00:00
|
|
|
|
|
2022-11-30 19:39:13 +00:00
|
|
|
|
[mit license]: https://github.com/DioxusLabs/dioxus/blob/master/LICENSE-MIT
|
2022-01-13 04:16:17 +00:00
|
|
|
|
|
2022-12-01 17:06:53 +00:00
|
|
|
|
除非您另有明确声明,否则有意提交的任何贡献将被授权为 MIT 协议,没有任何附加条款或条件。
|