不是响应式的数据改变导致了页面的改变

来源:6-3 ref,reactive 响应式引用的用法和原理 (2)

sony的小鼠

2021-03-24

老师,我在用vue3做毕业设计的时候遇到了一件比较奇怪的事情

模板部分

<div  v-for="companion in travelCompanions" >
	<div v-for="similiarAttraction in companion.similiarAttractions"
          :key="similiarAttraction"
     >
       {{similiarAttraction}}
     </div>
   <img ... @click="()=>showEmailPopup(companion)"/>
</div>

setup函数中处理函数

const showEmailPopup = (companion) => {
        if(companion){
            console.log('我是不是响应式数据呢',companion)//打印出来的就是普通对象
            companion.similiarAttractions = ['kk']
        }

当我修改了这个非响应式数据的时候,我发现页面也随之改变了,这是为什么呢

写回答

1回答

sony的小鼠

提问者

2021-03-24

老师,我后来做了一下实验,发现是因为我点击之后,有一个响应式的数据发送了变化,导致页面发生了变化,是不是页面发送了变化,哪怕你这个数据不是响应式的,也会随之改变

0
6
weixin_慕九州3551832
回复
Dell
老师,vue不是可以局部更新渲染吗,应该只是检测到响应式的数据变化,只更新响应式那块的页面。难道一个响应式数据的变化,会更新整个页面吗?
2023-03-28
共6条回复

Vue3入门与项目实战 掌握完整知识体系

明星讲师DELL亲授,全方位知识点+高匹配度项目,入门到深度掌握

3382 学习 · 1454 问题

查看课程