vue2响应式双向绑定在对象或数组新增属性页面无响应怎么解决


本文小编为大家详细介绍“vue2响应式双向绑定在对象或数组新增属性页面无响应怎么解决”,内容详细,步骤清晰,细节处理妥当,希望这篇“vue2响应式双向绑定在对象或数组新增属免费云主机域名性页面无响应怎么解决”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。vue2 中可以将数据与视图进行绑定,修改 data 对象的属性值将引起对应视图的改变。Vue2的数据视图绑定是通过JS特性这一语法实现,其使用中存在数据属性丢失的这 一 bug,主要针对 对象或数组属性丢失。使用 antv a-select(下拉框)组件,使用 v-mode 绑定对象 的值,但是 对象之前是没有赋值的,是一个 空对象 ,这就导致了 页面视图不刷新 ,但是 属性值有变化 ,这可以说是 vue2 的一个缺陷。方法一 (设置初始值)给 绑定的对象 赋初始值 null 或者 ‘ ‘如果是普通 输入框 input ,这样的方法没什么问题,但是 我的页面使用 a-select下拉框,默认有提示消息( placeholder),如果 赋初始值 为空 ,下拉框会填充空白内容 ,覆盖之前的提示消息 ,这样的页面 会比较不美观且不友好虽然这种方法可以解决绑定对象属性丢失问题,但是如果给 每个属性设置 初始值 为 null,那么所有的下拉框都是空白 ,可以看到 下拉框 赋初始值 为 null ,页面的效果非常不友好 ,没有提示信息 ,所有这种方法不推荐方法二 (创建一个新的对象,替换原对象)这种方法可以用于需要添加多个新属性,再把原对象与新属性合并到新对象中Object.assign(目标对象,原对象, 新属性)我这里是 利用a-select下拉框 自带的 下拉框 改变方法 ,@change ,该方法有两个参数 value 和 option ,value 代表你改变的值 ,option (我也不太明白 ,反正里面东西很多),然后 我利用 这个@change 方法 和 Object.assign(目标对象,原对象, 新属性), 解决了状态丢失问题 ,大家可以 参考下面的代码 ,根据自己的实际情况进行调整 (每个人的情况都不一样)JS的对象有两种属性进行描述 分别是数据属性和访问器属性。数据属性有四个值:[[Configurable]] 表示是否可以删除定义,是否可以修改属性,默认为true[[Enumberable]] 是否可以迭代[[Writable]] 是否可以被修改[[Value]] 对象具体的值而访问器属性也有四个值:[[Configurable]] 表示是否可以删除定义,是否可以修改属性,默认为true[[Enumberable]] 是否可以迭代[[Get]] 获取函数,读取属性值时使用[[Set]] 设置函数,写入属性时调用那么如何实现数据响应呢?实现响应式的前提是可以捕捉到到数据的更改,获取数据同理,这就需要利用JS对象的访问器属性,而更改这些属性 就要用到JS中的一个方法 Object.defineProperty() 上述的属性在更改时,哪怕更改一个属性,所有属性都会变为默认值。具体使用方法如下:方法的参数分别是 Object.defineProperty(对象名, 属性名, {执行器})而get 函数在读取该对象属性时调用,返回的值为读取的值; set 函数会在设置新值时调用 传入的newValue为新值。在Vue中 会用data一个对象包裹所有的值,因此可以用遍历的方法给每个属性加上该方法。将该逻辑封装到一个函数中:这样data中的所有变量都会被绑定,但如果嵌套对象或数组,内部的对象不会被检测到。(可以用vue提供的 $set和 $delate 处理或 使用内部重写的数组方法)与标签联动的方法有许多,最简单的是使用id 来绑定,而Vue中是使用指令的方式。过程主要分两步:获取dom将数据放上去此时可以获取节点,并赋值数据,与数据劫持联动,最终结果如下:每次修改也会引起DOM元素的修改,实现响应式。同v-test(v-on) 的不同,v-model要实现双向绑定,即 input框输入的值也需要传回data。实现的逻辑前面是相同的,都需要获取元素,但需要新增将input输入框的内容,传回。但目前的方法并不完美,需要添加一个防抖函数读到这里,这篇“vue2响应式双向绑定在对象或数组新增属性页面无响应怎么解决”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注百云主机行业资讯频道。

相关推荐: pywinauto自动化测试如何使用

这篇文章主要介绍“pywinauto自动化测试如何使用”,在日常操作中,相信很多人在pywinauto自动化测试如何使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”pywinauto自动化测试如何使用”的疑惑有所帮助!接下来,…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

Like (0)
Donate 微信扫一扫 微信扫一扫
Previous 07/05 09:37
Next 07/05 09:38

相关推荐