跳至主要內容

宣布 Yew 0.21

·4 分鐘閱讀時間
Muhammad Hamza

Yew 開發團隊很榮幸地揭曉 Yew 0.21.0,這是我們賦予開發者以 Rust 建立可靠且高性能網路應用程式能力之旅程中的重要里程碑。讓我們深入了解此版本的重大亮點。

新功能

1. 變更簽章:鉤子依賴項的變化

Yew 0.21 中的一項重大變更,就是調整接受依賴項的 HOOK 的簽章。過去依賴項會在封閉之後作為第二個引數傳遞。但是,現在它們會在封閉之前作為第一個引數傳遞。

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 種類型的代理可供使用,具體取決於情況

  • 工作人員代理:使用演員模型的原始代理,旨在處理複雜狀態。

  • 一次性代理:專為預期每個代理只有一個輸入和一個輸出的場景而設計。

  • 反應器代理:針對每個代理需要多個輸入和多個輸出的情況

yew-agent 的說明文件 中了解更多資訊

4. 效能提升:更快、更順暢的體驗

Yew 0.21 帶來了大幅的效能提升。由於優化程式碼減少記憶體使用量並提升繪製功能,您的網路應用程式將執行得更快、更有效率。

徵求貢獻者

Yew 專案仰賴社群參與,我們雙手歡迎貢獻者。無論您是經驗豐富的 Rust 開發人員,或才剛踏上旅程,都有許多參與方式,並對 Yew 的發展做出有意義的貢獻。

以下是您可以貢獻的幾個領域

  • 程式碼貢獻:如果您熱衷於使用 Rust 進行網路開發,不妨考慮為 Yew 貢獻程式碼。無論是修正 bug、新增功能,或改善文件,您的程式碼都能讓 Yew 變得更好。

  • 文件:清晰而全面的文件對專案的成功至關重要。您可以透過改善文件、撰寫教學課程或建立範例,協助其他人了解和有效使用 Yew 來實踐貢獻。

  • 測試和 Bug 回報:測試 Yew 和回報您遇到的 Bug 是有價值的貢獻。您的意見回饋協助我們找出並修正問題,以確保每個人擁有更穩定的架構。

  • 社群支持:加入討論、聊天室(我們有自己的 Discord 和 Matrix!)或社群媒體,協助其他開發人員使用 Yew。分享您的知識和協助其他人解決問題是實踐貢獻的一種絕佳方法。

對像是 Yew 的開放原始碼專案實踐貢獻,不僅是回饋社群的一種方式,同時也是學習、協作和增強技能的絕佳機會。

若要開始,請查看 Yew GitHub 儲存庫和貢獻指南。您的貢獻很受重視,在塑造 Yew 的未來方面扮演著至關重要的角色。歡迎加入我們進行這段令人興奮的旅程!

謝謝!

許多人齊聚一堂,共同建立 Yew 0.21。沒有各位,我們無法完成它。謝謝!

請參閱完整變更紀錄