Vue2+Vue3组件间通信方式汇总(1)------props

目录

一、props (父传子,子传父)

------Vue2

------Vue3

从Vue2(组合式API)和Vue3(选择式API)两个版本对每个组件间通信方式进行讲解:

一、props (父传子,子传父)
------Vue2

父组件:

javascript 复制代码
<template>
  <div>
     <child :childValue="parentValue" :childFunc="fatherFunc"></child>
  </div>
</template>
<script>
import Child from './Child.vue'
 export default{
  components:{
    Child 
 },
  data(){
return{
     parentValue:"儿子,我是爸爸"
       }
},
  methods:{
    fatherFunc(data){
           console.log("儿子:",data,"爸爸:",'hello,儿子!')
                   }
         }
}
</script>

子组件:

javascript 复制代码
<template>
 <div>
 <p>{{childValue}}</p>
 <button @click="baba">儿子呼唤道:"爸爸!"</button>
</div>
</template>
<script>
 export default{
  props:["childValue","childFunc"],//childValue只能读取,不能被修改
  data(){
    return{
      papa"爸爸!"
       }},
  methods:{
    baba(){
        this.childFunc(this.papa);
        }
    }
}
</script>

页面最终结果展示:儿子,我是爸爸,

控制台显示结果:儿子:爸爸!爸爸:hello,儿子!

props可以传数组也可以传对象,详情可以到Vue官网查看入门手册。

------Vue3

父组件:

javascript 复制代码
<template>
  <div>
     <child :childValue="parentValue" :childFunc="fatherFunc"></child>
  </div>
</template>
<script setup lang="ts">
import Child from "./Child.vue"
import {ref} from "vue"
let parentValue = ref("爸爸!");
let fatherFunc=(data)=>{
        console.log("儿子:",data,"爸爸:",'hello,儿子!')
       }
</script>

子组件:

javascript 复制代码
<template>
 <div>
{{props.childValue}}//props可以省略,直接写childValue
<button @click="handleClick">点击</button>
</div> 
</template>
<script setup lang="ts">
let props=defineProps(["childValue","childFunc"]) //childValue只能读取,不能被修改
let handleClick=props.childFunc(props.childValue);
</script>

页面展示的结果:爸爸!

控制台展示结果:儿子:爸爸!爸爸:hello,儿子!

相关推荐
玲小珑1 分钟前
LangChain.js 完全开发手册(八)Agent 智能代理系统开发
前端·langchain·ai编程
蓝胖子的多啦A梦5 分钟前
【前端】VUE+Element UI项目 页面自适应横屏、竖屏、大屏、PDA及手机等适配方案
前端·javascript·elementui·html·前端页面适配
掘金安东尼6 分钟前
前端周刊431期(2025年9月8日–9月14日)
前端·javascript·github
Bear on Toilet10 分钟前
继承类模板:函数未在模板定义上下文中声明,只能通过实例化上下文中参数相关的查找找到
开发语言·javascript·c++·算法·继承
风若飞14 分钟前
npm ERR! code CERT_HAS_EXPIRED
前端·npm·node.js
北城笑笑21 分钟前
NodeJS 8 ,从 0 到 1:npm 包发布与更新全流程指南( 含多场景适配与踩坑总结 )
前端·npm·node.js·github
Mike_jia21 分钟前
如何找回Harbor密码
前端
码码哈哈0.022 分钟前
npm : 无法加载文件 C:\Program Files\nodejs\npm.ps1,因为在此系统上禁止运行脚
前端·npm·node.js
浩男孩22 分钟前
🍀简简单单结合 hooks 优雅使用弹窗🚀🚀
前端
江城开朗的豌豆24 分钟前
Axios拦截器:给你的请求加上"双保险"!
前端·javascript·react.js