vuejs / core

🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
https://vuejs.org/
MIT License
45.6k stars 8k forks source link

For the reactive of the collection, the results are inconsistent when assigning shallow and readonly during value fetching. #11249

Open liuseen-l opened 4 days ago

liuseen-l commented 4 days ago

Vue version

3.4.31

Link to minimal reproduction

https://play.vuejs.org/#eNp9UltLwzAU/iuHvKyF0iH6NKag4oOCF9THvGTd2ZaZJiFJt0npf/c0XetgF/rSfN/Jd0lSs3tr802FbMKmvnDSBvAYKnvHtSytcQFqcCiKIDeYgV8Jpcz2cwCImhutfiGT/qsjM5CeBiLcwMKZEkZkMOK6/QqjfYBSWLgddBONW3gVNklTronKKUEyWhgzOnJMagETuGrSFDotozBXZpkM9kkrsOwFUhocj2EhlMfWflCfCUfqffyknp2T7atc1u2Lmdn6sFjdUCPCckHocZUJOZ6rEXd1LsFVe5MWnHUG+9wnNYbMcf5QZDruLpmulxYBS6tEQFpNx8MCWMaCJ8WFXOZrbzS9jZprAM4KU1qp0L3bIMmRswlEpuVi7JeItV5ZjxcrLH5O4Gu/azHOPhx6dBvkbOCCcHTUHf309YY7+h/I0swrRdMXyE+k06jajN3YQ6XnFPtgLqZ9ji9c6uW3f9oF1L4v1R0WQBPnOaP3+3ih+n/c6/wm7uO6Yc0foLQkqA==

Steps to reproduce

https://play.vuejs.org/#eNp9UltLwzAU/iuHvKyF0iH6NKag4oOCF9THvGTd2ZaZJiFJt0npf/c0XetgF/rSfN/Jd0lSs3tr802FbMKmvnDSBvAYKnvHtSytcQFqcCiKIDeYgV8Jpcz2cwCImhutfiGT/qsjM5CeBiLcwMKZEkZkMOK6/QqjfYBSWLgddBONW3gVNklTronKKUEyWhgzOnJMagETuGrSFDotozBXZpkM9kkrsOwFUhocj2EhlMfWflCfCUfqffyknp2T7atc1u2Lmdn6sFjdUCPCckHocZUJOZ6rEXd1LsFVe5MWnHUG+9wnNYbMcf5QZDruLpmulxYBS6tEQFpNx8MCWMaCJ8WFXOZrbzS9jZprAM4KU1qp0L3bIMmRswlEpuVi7JeItV5ZjxcrLH5O4Gu/azHOPhx6dBvkbOCCcHTUHf309YY7+h/I0swrRdMXyE+k06jajN3YQ6XnFPtgLqZ9ji9c6uW3f9oF1L4v1R0WQBPnOaP3+3ih+n/c6/wm7uO6Yc0foLQkqA==

What is expected?

const map = reactive(new Map())
map.set('foo', shallowReactive({a : 1})) 
console.log(isShallow(map.get('foo'))) true

map.set('bar', readonly({b : 1})) 
console.log(isReadonly(map.get('foo'))) true

What is actually happening?

const map = reactive(new Map())
map.set('foo', shallowReactive({a : 1})) 
console.log(isShallow(map.get('foo'))) false

map.set('bar', readonly({b : 1})) 
console.log(isReadonly(map.get('foo'))) false

System Info

No response

Any additional comments?

No response