分享更有价值
被信任是一种快乐

vue可不可以修改prop中的值

文章页正文上

今天小编给大家分享一下vue可不可以修改prop中的值的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。 vue中不可以直接修改prop中的值,若直接修改vue会产生警告,且修改该属性值并不能修改父组件对应的变量;但是可以通过触发子组件事件,父组件监听该事件并执行修改父组件的函数,通过监听子组件事件做到双向数据绑定来实现修改prop中的值。本教程操作环境:windows10系统、Vue3版、Dell G3电脑。在Vue中,prop是可以接受由父组件传递给子组件的属性,但prop无法进行修改的。如果prop被强制修改,会有警告所有的 prop 都使得其父子 prop 之间形成了一个单向下行绑定:父级 prop 的更新会向下流动到子组件中,但是反过来则不行。这样会防止从子组件意外变更父级组件的状态,从而导致你的应用的数据流向难以理解。另外,每次父级组件发生变更时,子组件中所有的 prop 都将会刷新为最新的值。这意味着你不应该在一个子组件内部改变 prop。如果你这样做了,Vue 会在浏览器的控制台中发出警告。尝试通过下面的方法直接修改属性值Vue 将提出警告Set operation on key “modelValue” failed: target is readonly.且修改该属性值并不能修改父组件对应的变量,仅仅适用于基础数据类型。注意在 JavaScript 中对象和数组是通过引用传入的,所以对于一个数组或对象类型的 prop 来说,在子组件中改变这个对象或数组本身将会影响到父组件的状态,且 Vue 无法为此向你发出警告。作为一个通用规则,应该避免修改任何 prop,包括对象和数组,因为这种做法无视了单向数据绑定,且可能会导致意料之外的结果。Vue3 Props 文档正确的修改方法是触发子组件事件,父组件监听该事件并执行修改父组件的函数,以 v-model 为例,v-model 本身就是传递给子组件的 modelValue 属性,然后监听 update:modelValue 事件来做到双向数据绑定,所以我们也可以通过该方法来在代码中修改 modelValuev-model 将自动监听 update:modelValue 事件并将 modelValue 修改为触发事件时传递的参数值(即 $emit 的第二个参数)。需要注意的是,这种通过触发事件-监听事件的数据流模式并不能马上生效,如果使用以下代码会发现输出到控制台的仍然是 modelValue 原先的值,这是因为触发事件-监听事件的模式下属性值的修改需要时间,改用以下代码会发现输出正常:由于 Vant 只实现了左边放 label 的输入框,想基于此实现一个 label 在右边的输入框Vant3 Field 文档这其中遇到的问题除了把 label 右置并根据 label 的内容自适应宽度外,就是 Vant 中的 与我需要实现的 以及放置 的父组件之间的数据流了。为了能够与 一致使用 v-model ,我在 下设置 modelValue 属性,然后将 v-model="modelValue"无疑,这种做法违背了单向数据流原则,在 VanField 修改时将直接影响 RightLabelInputmodelValue 值,而 modelValueRightLabelInput 的属性,不能直接修改。以上就是“vue可不可以修改prop中的值”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会免费云主机、域名为大家更新不同的知识,如果还想学习更多的知识,请关注云技术行业资讯频道。

相关推荐: 一加Ace竞速版为游戏而生,有实力更有底气

随着手机的不断更新换代,其功能越来越广泛,不再局限于通信,比如短视频、移动支付、玩游戏。其中手机游戏就受到许多人的喜欢,电竞手机也就应运而生!而一加Ace竞速版专为游戏而生,凭借强悍的性能、超大的散热系统、超长的续航时间,成为了消费者首选的电竞手机。那么,一加…

文章页内容下
赞(0) 打赏
版权声明:本站采用知识共享、学习交流,不允许用于商业用途;文章由发布者自行承担一切责任,与本站无关。
文章页正文下
文章页评论上

云服务器、web空间可免费试用

宝塔面板主机、支持php,mysql等,SSL部署;安全高速企业专供99.999%稳定,另有高防主机、不限制内容等类型,具体可咨询QQ:360163164,Tel同微信:18905205712

主机选购导航云服务器试用

登录

找回密码

注册