跳至主要内容

·4 分钟阅读
Muhammad Hamza

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。没有你们所有人,我们无法做到这一点。感谢!

请参阅完整变更日志

·2 分钟阅读
Muhammad Hamza

Yew 团队很高兴宣布一个新的、期待已久的 Yew 版本:v0.20。Yew 是一个用于创建可靠高效的 Web 应用程序的框架。