$set解决vue中修改数组或对象视图不更新的问题

在Vue 2.x中,由于defineProperty的限制,直接修改数组或对象可能导致视图不更新。本文通过案例介绍如何使用`$set`或`Vue.set()`解决这个问题,确保视图正确响应数据变化。
摘要由CSDN通过智能技术生成


前言

相信大家和我一样,在开发中总是遇到一个问题。

为啥我修改v-for遍历的数组,视图却没有更新???当我点击其他操作重新渲染后,又更新了???这不会是vue出bug了吧
在这里插入图片描述
这项问题其实正是由vue的双向绑定造成的,vue在2.x的版本中还在使用defineProperty方法,这就是defineProperty中的一个问题。所以在vue3.0中,使用了proxy取代了defineProperty。对此本文不多做解释,有兴趣的朋友可以去查阅下资料。

回到正题,让我们看看怎么在2.x中解决这个问题吧!

一、案例

为了方便我们了解问题,我写了一个测试代码

<template>
<div id="app">
  <div>
    <button type="" @click="change">改变数组</button>
    <p>{
  {student.name}}</p>
    <p>{
  {student.age}}</p>
    <span v-for="(item,index) in info" :key="index" style=&
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值