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 种类型的代理可供使用,具体取决于情况
-
工作者代理:使用 actor 模型的原始代理,旨在处理复杂状态。
-
一次性代理:专为每个代理预期一个输入和一个输出的场景而设计。
-
反应器代理:非常适合每个代理需要多个输入和多个输出的情况。
在 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。没有你们所有人,我们无法做到这一点。感谢!
请参阅完整变更日志