不可變型別
什麼是不可變型別?
這些類型是您可以實例化但永遠不會更改值的類型。為了更新值,您必須實例化一個新值。
為什麼使用不可變型別?
與 React 一樣,屬性是從祖先傳播到子代的。這意味著屬性在每個元件更新時必須存在。這就是為什麼屬性應該——理想情況下——很容易克隆。為了實現這一點,我們通常將事物包裝在 Rc
中。
不可變類型非常適合保存屬性的值,因為它們可以在從組件傳遞到組件時以很低的成本克隆。
常見的不可變型別
Yew 推薦使用來自 implicit-clone
crate 的以下不可變型別:
IString
(在 Yew 中別名為AttrValue
)- 用於字串而不是String
IArray<T>
- 用於陣列/向量而不是Vec<T>
IMap<K, V>
- 用於映射而不是HashMap<K, V>
這些型別是引用計數(Rc
)或靜態引用,使它們的克隆成本非常低。