我正在尝试构建一个在客户端运行 wasm 的 Web 应用程序,我想知道什么是服务多个页面的好方法。我主要关心的是性能,因为我想将应用程序拆分为上下文块,而不是让一个页面包含所有内容。
我在客户端使用带有Yew 框架的 Rust,到目前为止,我只使用yew_router来处理客户端的不同路由,但它们都在同一个 HTML 页面和 Wasm 模块中工作。现在我希望能够使用单独的 Wasm 模块为不同的 HTML 页面提供服务,但我不确定如何实现这一点。我真的必须为每个页面编写一个专用的 crate 并将它们编译为单独的 Wasm 模块,以便我可以单独为它们提供服务吗?或者有什么方法可以将一个 rust crate 编译成多个 Wasm 模块?
我当前的项目结构如下所示:
.
├── Cargo.toml // workspace manifest
├── client
│ ├── Cargo.toml
│ ├── favicon.ico
│ ├── index.html
│ ├── main.js
│ ├── Makefile
│ ├── pkg // built using wasm-pack and rollup
│ │ ├── bundle.js
│ │ ├── client_bg.d.ts
│ │ ├── client_bg.wasm
│ │ ├── client.d.ts
│ │ ├── client.js
│ │ ├── package.json
│ │ └── snippets
│ ├── src
│ ├── statics
│ ├── styles
│ └── vendor
├── server
│ ├── Cargo.toml
│ └── src
└── ... other crates
我在里面运行服务器client/
,它响应index.html
任何传入的GET
请求。设置模块的index.html
链接bundle.js
。pkg/
client_bg.wasm
现在我基本上想用另一个 HTML 页面和另一个 Wasm 模块来做这件事,最好是来自client
crate 中的同一个 Yew App。
谢谢