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


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

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

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

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

    父组件代码:

    子组件代码:

     

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

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

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

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

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

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

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

  • 相关阅读:
    自定义嵌入一个tomcat | 可设置自定义html模板,设置请求路径
    Linux -- 使用多张gpu卡进行深度学习任务(以tensorflow为例)
    哪些数据应该先治理
    docker离线安装并导入镜像
    Android热修复2(ASM技术的运用)
    技术分享 | 基于 Alertmanager 告警系统的改造
    Android Qcom USB Driver学习(十一)
    Docker 安装 (完整详细版)
    算法分析与设计CH3:Growth of Functions
    基于单片机的胎压监测系统的设计
  • 原文地址:https://blog.csdn.net/weixin_67490903/article/details/126406554