Yew 开发团队很高兴推出 Yew 0.21.0,这是在使用 Rust 创建可靠且高性能的 Web 应用程序的开发人员赋能之旅中的一个重要里程碑。让我们深入了解此版本的重大亮点。
新增功能
1. 更改签名:钩子依赖项的转变
Yew 0.21 中的一项重大更改是对接受依赖项的钩子签名的调整。依赖项过去作为闭包后的第二个参数传递。然而,现在它们作为闭包前的第一个参数传递。
use_effect_with_deps(deps, move |deps: Vec<i32>| {
// Do something with dependencies
});
在代码片段中交换依赖项顺序的原因是为了解决一个特定用例。在需要相同的值来计算依赖项和通过值移动到闭包的情况下,新顺序简化了代码并提高了可读性和人体工程学。
这是一个重大的破坏性更改,因此我们提供了一种自动化重构的方法
2. 多功能子类型
Yew 现在允许你将任何类型用作组件中的子项。这意味着你不再仅限于Children
类型。相反,你可以使用任何类型,甚至是Html
或闭包,解锁诸如以下模式:
html! {
<Comp>
{|p: RenderProps| html!{<>{"Hello, "}{p.name}</>}}
</Comp>
}
3. 代理:完全重写
Yew 0.21 对yew-agent
进行了完全重写。这简化了工作者的操作方式。以下是你需要了解的内容
-
引入提供者:告别旧的
Worker::bridge()
方法。现在,你可以根据需要使用WorkerProvider
/ReactorProvider
/OneshotProvider
,通过使用钩子创建它们。 -
WorkerLink 到 WorkerScope:我们已经删除了 WorkerLink,转而使用 WorkerScope。此更改简化了工作者架构,使其更易于管理和维护。
现在有 3 种类型的代理可供使用,具体取决于情况
-
Worker 代理:使用 actor 模型的原始代理,旨在处理复杂的状态。
-
Oneshot 代理:专为预期每个代理有一个输入和一个输出的场景而设计。
-
Reactor 代理:非常适合每个代理需要多个输入和多个输出的情况。
在yew-agent 文档中了解更多信息
4. 性能改进:更快速、更流畅的体验
Yew 0.21 带来了大幅的性能改进。得益于减少内存使用量和增强渲染的优化,你的 Web 应用程序将运行得更快、更高效。
征集贡献者
Yew 项目蓬勃发展依赖于社区参与,我们热烈欢迎贡献者。无论你是经验丰富的 Rust 开发者还是刚开始你的旅程,都有很多方法可以参与并对 Yew 的发展产生有意义的影响。
以下是你可以在其中做出贡献的一些领域
-
代码贡献:如果你热衷于使用 Rust 进行 Web 开发,请考虑为 Yew 贡献代码。无论是修复错误、添加新功能还是改进文档,你的代码都可以帮助让 Yew 变得更好。
-
文档:清晰全面的文档对于任何项目的成功都至关重要。你可以通过改进文档、编写教程或创建示例来做出贡献,这些示例可以帮助其他人理解和有效使用 Yew。
-
测试和错误报告:测试 Yew 并报告你遇到的错误是一项有价值的贡献。你的反馈有助于我们识别和修复问题,确保为每个人提供一个更稳定的框架。
-
社区支持:加入讨论、聊天室(我们有自己的 Discord 和 Matrix!)或社交媒体,以帮助其他使用 Yew 的开发者。分享你的知识并帮助其他人解决问题是做出贡献的一种绝佳方式。
为 Yew 等开源项目做出贡献不仅是回馈社区的一种方式,也是学习、协作和提升技能的绝佳机会。
要开始,请查看 Yew GitHub 存储库和贡献指南。你的贡献受到高度赞赏,并在塑造 Yew 的未来中发挥着至关重要的作用。加入我们,踏上这段激动人心的旅程!
谢谢!
许多人齐心协力创建了 Yew 0.21。如果没有你们所有人,我们就无法做到这一点。谢谢!
请参阅完整变更日志