Vue子组件调用父组件的方法及传值「建议收藏」

Vue子组件调用父组件的方法及传值「建议收藏」//父组件<template><divclass=”home”><HelloWorldref=”mychild”></HelloWorld><div@click=”clickParent”>clickme</div></div></template><script>importHelloWorldfrom’@/components/HelloW

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

一、通过$ref的方式

//父组件
<template>
  <div class="home">
    <myBox ref="myBox"></myBox>
    <div @click="handelClick">click me</div>
  </div>
</template>
<script>
  import myBox from '@/components/myBox.vue'
  export default { 
   
    name: 'home',
    components: { 
   
      myBox
    },
    methods: { 
   
      handelClick() { 
   
        this.$refs.myBox.init("传递的值");
      }
    }
  }
</script>


//子组件
<template>
  <div class="myBox">
    <h1>我是子组件</h1>
  </div>
</template>
<script>
  export default { 
   
    name: 'myBox',
    methods: { 
   
      init(val) { 
   
        console.log(val)
      }
    }
  }
</script>

二、通过props的方式

// 父组件
<template>
  <div>
    <h1>父组件</h1>
    <myBox :dataFrom="data"></myBox>
  </div>
</template>
 
<script>
  import myBox from '@/components/myBox.vue'
  export default { 
   
    name: 'home',
    components: { 
   
      myBox
    },
    data() { 
   
      return { 
   
        data:"传递的值"
      }
    }
  }
</script>
// 子组件
<template>
  <div>
    <h1>子组件</h1>
    <p>下面是父组件传过来的数据</p>
    <p>{ 
   { 
   fromData}}</p>
  </div>
</template>
  
<script>
export default { 
   
   props: { 
   
    fromData: { 
   
      type: String,
      default: 'hello world'
    }
  }
  data () { 
   
    return { 
   
  
    };
  }
}
</script>

三、用$emit向父组件触发一个事件,父组件监听这个事件

//父组件
<template>
  <div>
    <myBox @fatherMethod="fatherMethod"></myBox>
  </div>
</template>
<script>
  import myBox from '@/components/myBox';
  export default { 
   
    components: { 
   
      child
    },
    methods: { 
   
      fatherMethod() { 
   
        console.log('测试');
      }
    }
  };
</script>
 //子组件
<template>
  <div>
    <button @click="childMethod()">点击</button>
  </div>
</template>
<script>
  export default { 
   
    methods: { 
   
      childMethod() { 
   
        this.$emit('fatherMethod');
      }
    }
  };
</script>
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/186856.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • java中sqrt函数的详解[通俗易懂]

    java中sqrt函数的详解[通俗易懂]一、原理:牛顿迭代法具体解释:牛顿迭代法求平方根那我们怎么用牛顿迭代法呢?首先要明白,牛顿迭代法求的是函数和X轴的交点的横坐标,也就是我们说的根1)那么第一步就是构建曲线了。假设有一个数c,我们求它的平方根x,那么有一个等式,x^2=c;挪到一边就是求f= x^2-c的根x2)带入上面的公式也就是 3)既然是个迭代,那么

    2022年5月7日
    80
  • RegisterStartupScript和RegisterClientScriptBlock

    RegisterStartupScript和RegisterClientScriptBlockPage.Response.Write(“varresponse;”);    Page.RegisterStartupScript(“RegisterStartupScript”,”varRegisterStartupScript;”);    Page.RegisterClientScriptBlock(“RegisterClientScriptBlock”,”varRe

    2022年7月20日
    16
  • 内存映射文件「建议收藏」

    内存映射文件「建议收藏」在做科研,实现一些大数据的算法的时候,经常要调用一些文件的I/O函数,在数据量很大的时候,除了设计的算法和数据结构的耗时以外,其实主要的耗时还是文件的I/O。因为一般常规的方法就是先读出磁盘文件的内容到内存中,然后修改,最后写回到磁盘上。读磁盘文件是要经过一次系统调用,先将文件的内容从磁盘拷贝到内核空间的一个缓冲区,然后再将这些数据拷贝到用户空间,实际上是两次数据拷贝。写回同样也需要经过两次数据拷

    2022年6月17日
    54
  • vscode新建html文件快捷键_vscode怎么运行代码HTML

    vscode新建html文件快捷键_vscode怎么运行代码HTMLctrl+N新建文件ctrl+S保存为html文件shift+!然后回车快速新建html成功

    2022年8月22日
    10
  • C++ docker_docker部署mysql

    C++ docker_docker部署mysql版权声明:本文为博主原创文章,未经博主允许不得转载。Docker介绍Docker是一个开源的容器引擎,它有助于更快地交付产品。Docker可将应用程序和基础设施层隔离,并且将基础设施当作程序一样进行管理。使用Docker,可以更快地打包,测试以及部署应用程序,并可以缩短从编程到部署运行代码的周期docker部署c/c++程序关于docker的使用网上有很多的教程但是很少有介绍如…

    2022年10月19日
    4
  • ubuntu远程桌面控制_ubuntu 远程控制

    ubuntu远程桌面控制_ubuntu 远程控制已经使用的,备份Section”Monitor”Identifier”Monitor0″HorizSync28.0-80.0VertRefresh48.0-75.0#https://arachnoid.com/modelines/#1920×1080@60.00Hz(GTF)hsync:67.08kHz;pclk:172…

    2022年8月21日
    11

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号