inject 為什麼不能直接修改值 - daniel-qa/Vue GitHub Wiki
inject 為什麼不能直接修改值
1. inject 是 淺拷貝 (Shallow Copy) 還是 參考 (Reference)?
其實 Vue 的 inject() 只會拷貝引用 (Reference),不會做值的拷貝。
inject + 值類型 = 淺拷貝
inject + 參考類型 = 共享引用
提供類型 | inject 拿到 | 可修改 | 說明 |
---|---|---|---|
值類型 | 值本身 | ❌ | 直接拷貝,不共享 |
ref | 引用 | ✅ | 共享 .value |
reactive | 引用 | ✅ | 共享物件 |
函數 | 引用 | ✅ | 共享函數 |