哪里有好网站设计,如何注册网站主办者,wordpress 文章发布 编辑器,有趣的网站游戏由于各种原因#xff0c;我最后还是打算把Yew应用的开发从csr模式转成ssr模式。没想到这里面的水还是挺深的#xff0c;这里面的Cargo.toml配置包含的信息量之大#xff0c;着实让我头疼了一番。
Cargo.toml的配置如下
[package]
name app
version 0.…由于各种原因我最后还是打算把Yew应用的开发从csr模式转成ssr模式。没想到这里面的水还是挺深的这里面的Cargo.toml配置包含的信息量之大着实让我头疼了一番。
Cargo.toml的配置如下
[package]
name app
version 0.1.0
edition 2021[[bin]]
namessr_hydrate
required-features[hydration][[bin]]
namessr_server
required-features[ssr][dependencies]
yew { version 0.20 }
...
[features]
hydration [yew/hydration]
ssr [yew/ssr]
上面的文档包含的信息量比较大我这里只挑4个地方来说一下其它点我自己也是在学习中。
1. [package].name
这个字段用来指定 package 的名称。之前我对这个名称的定义并没有太在意但在Yew的SSR开发模式中这个名称会被 bin 模块所引用。如果 package 的名称与 bin 模块中引用的名称不一致cargo clippy 并不会给出警告只有在运行 trunk build index.html 时才会报错。
error[E0432]: unresolved import app-- src/bin/ssr_hydrate.rs:1:5|
1 | use app::App; | ^^^ use of undeclared crate or module app
2. [[bin]]
[[bin]]“这种用法让我感到意外。使用过ini配置文件的同学都知道”[]“用于表示section这里的”[[]]是啥意思 经过查阅文档我才发现这是 toml 对数组的一种定义方式即允许我们配置多个 bin。这意味着我们可以在同一个 Cargo.toml 文件中定义多个二进制可执行文件并为它们分别指定不同的配置。这一特性在开发多个相关的工具或应用程序时非常有用。我们只需在 [[bin]] 下添加多个条目每个条目中配置一个 bin 的名称、入口文件以及其他相关的设置。这样我们就能更加灵活地管理和构建我们的项目。 回到Yew的SSR开发中上面的文档定义了2个binssr_hydrate和ssr_server。
3. [[bin]].name
bin的名称在这个项目中它们是ssr_hydrate和ssr_server即bin的名称直接对应于文件的名称。它们存放在src/bin目录下。在这个项目中它的目录结构式这样的。
.
├── Cargo.lock
├── Cargo.toml
├── index.html
├── index.scss
└── src├── bin│ ├── ssr_hydrate.rs│ └── ssr_server.rs
4. [[bin]].required-features
bin的required-features它是一个数组数组中的数据来源于[features]。我个人比较害怕这种用法因为它不能让你一眼看出它们之间的关系。 在上面的Cargo.toml中[features]包含了hydration和ssr这两个值正是被required-features所引用。 关于required-features我这里只是带出了一点皮毛里面的信息量比较大我后面结合我的开发经历再来逐步展开。
更多的Cargo.toml配置请参考官方文档