美文网首页
vue2数据双向绑定问题

vue2数据双向绑定问题

作者: 扶光_ | 来源:发表于2025-08-19 11:17 被阅读0次

今天在项目中遇到了从后端获取到的数据,然后在input中没办法修改,修改的值不进行回显。经排查是vue2中运用的是Object.defineProperty ,由于这个特性导致的。
如果是换成VUE3框架就不会出现这种问题
在前端我们在data中定义数据会经常定义一个空对象,将一个业务中的数据放在里面进行区分

比如一个一个食物表单
会定义一个
foodForm{}这样的形式 ,前端绑定就用v-mode=this.foodForm.name这样的形式

后端返回的属性特别多
你最后赋值的就用到了
this.foodForm.name = data.obj的形式直接赋值了

那么就出现了这个原理性的问题 vue绑定不到.

解决方法:
1foodForm初始化里面的属性
2 使用this.$set(this.editForm, name , data.obj)
因为set会会递归地将对象的属性转换为 Getter/Setter,从而在数据变化时触发依赖更新(视图更新)

原理
vue2是基于Object.defineProperty
Vue2 在初始化响应式数据时,只会对 data 中初始存在的属性进行响应式处理。
如果添加一个新属性(如 this.editForm.serial = 'xxx'),Vue 2 无法检测到,也不会触发视图更新
vue3是基于Proxy
代理整个对象,可以监听所有属性的读写,包括动态添加的

相关文章

  • v2和v3版本区别

    vue2和vue3双向数据绑定原理发生了改变vue2 的双向数据绑定是利用ES5 的一个 API Object. ...

  • Vue2和Vue3的区别

    1:vue2和vue3双向数据绑定原理发生了改变 vue2的双向数据绑定是利用ES5的一个APIObject.de...

  • vue基础题

    Vue2和Vue3的双向数据绑定的原理 Vue2的核心就是通过Object.defineProperty()方法设...

  • 双向绑定所使用到的defineProperty()

    vue是近年来大火的前端框架,采用数据驱动思想,其中双向绑定是最重要的特点之一。vue2中双向绑定的实现使用了Ob...

  • Vue 组件通信(双向绑定)

    参考:如何在Vue2中实现组件props双向绑定

  • Object.defineProperty详解

    1.vue2双向数据绑定实现 vue2主要借助于object.defineProperty实现(讲解) 数据描述符...

  • vue2 实现 div contenteditable="tru

    问题 点击跳转到原文 在vue2中对表单控件有着良好的双向数据绑定机制,但是对于要特定实现某些功能的输入时,我们就...

  • Vue 中的双向数据绑定

    双向绑定 单向数据流 双向绑定 or 单向数据流 Vue 是单向数据流,不是双向绑定 Vue 的双向绑定是语法糖 ...

  • Vue面试考点之Vue3

    Vue2数据双向绑定是通过采用数据劫持结合发布者-订阅者模式的方式来实现的。通过Object.defineProp...

  • Vue之表单双向数据绑定和组件

    三、表单双向数据绑定和组件 目录:双向数据绑定、组件 1.双向数据绑定 1)什么是双向数据绑定Vue.js是一个M...

网友评论

      本文标题:vue2数据双向绑定问题

      本文链接:https://www.haomeiwen.com/subject/gnvtajtx.html