Skip to main content
Version: Next

不可變型別

什麼是不可變型別?

這些類型是您可以實例化但永遠不會更改值的類型。為了更新值,您必須實例化一個新值。

為什麼使用不可變型別?

與 React 一樣,屬性是從祖先傳播到子代的。這意味著屬性在每個元件更新時必須存在。這就是為什麼屬性應該——理想情況下——很容易克隆。為了實現這一點,我們通常將事物包裝在 Rc 中。

不可變類型非常適合保存屬性的值,因為它們可以在從組件傳遞到組件時以很低的成本克隆。

常見的不可變型別

Yew 推薦使用來自 implicit-clone crate 的以下不可變型別:

  • IString(在 Yew 中別名為 AttrValue)- 用於字串而不是 String
  • IArray<T> - 用於陣列/向量而不是 Vec<T>
  • IMap<K, V> - 用於映射而不是 HashMap<K, V>

這些型別是引用計數(Rc)或靜態引用,使它們的克隆成本非常低。

進一步閱讀