• vue中props父给子传值,子组件可以改变父组件的值


    遇到一个问题,记录一下!

    vue中父组件给子组件传值一般都用props传值,那么在父组件给子组件传值的时候,子组件可以改变父组件的值吗?

    通常来说,父级 prop 的更新会向下流动到子组件中,但是反过来则不行。这样会防止从子组件意外改变父级组件的状态,从而导致你的应用的数据流向难以理解。

    但是当父组件的传值是数组或者对象时,子组件中不仅能够直接修改,还不会报错,在子组件中改变这个对象或数组本身将会影响到父组件的状态。

    父组件代码:

    子组件代码:

     

    上面是正常获取父组件值的情况

    下面是子组件改变了父组件值的情况

     每一次改变input值,子组件值改变,父组件值相应改变

    可以看到,修改props传过来的值,是可以修改的,父组件里面也会跟着修改。

    接下来分析下出现这种情况的原因:

    js执行的时候,会把基本类型的数据保存在栈空间中,引用类型的数据保存在堆空间

    父组件传递给子组件的,实际上只是一个引用地址,当子组件修改这个对象时,是真的修改了在堆空间中保存的数值,当然父组件中的值也会发生变化,但是引用地址没有进行修改,所以并没有报错。

  • 相关阅读:
    JavaScript实现登录框定位
    最长的顺子
    Linux服务器自定义登陆提示信息
    卷积神经网络(一)
    java垃圾回收基础
    数据结构中的判定转状态+扫描线:P1502
    节流防抖最简单的实现
    c++builder 6.0 安装xpmenu3.0组件
    netty系列之:netty中常用的对象编码解码器
    信息发布门槛低,移动互联网时代下的网络舆情如何防控?
  • 原文地址:https://blog.csdn.net/weixin_67490903/article/details/126406554