父子组件间传值和传方法
一、传值
1、父组件 传值给 子组件
父组件中:
//在父组件中引入子组件,并传入子组件内需要的值 <template> <div> <div>父组件</div> <!--(3)--> <child :message="parentMsg"></child> </div> </template> <script> import child from './child' //(1)引入child组件 export default { data() { return { parentMsg: '传给子组件的值' //(2)在data中定义需要传入的值 } }, components: { child } } </script>
子组件中:
//在子组件中注册props,并使用父组件中传递过来的数据 <template> <div> <div>{{message}}</div> </div> </template> <script> export default { props: { message: String //定义传值的类型<br> }, //或者props:["message"] data: {} } </script> <style> </style>
2、子组件 传值给 父组件
在父组件中
//自定义事件childFn,事件名为parentFn(parentFn事件用于接收子组件传递过来的值) <parent @childFn="parentFn"></parent > data: { message: '' }, methods: { parentFn(payload) { this.message = payload; } }
在子组件中:
//点击send按钮触发sendMes事件,把message传给父组件 <button @click="sendMes">Send</button> data() { return { // 默认 message: '我是子组件的消息' } }, methods: { sendMes() { this.$emit('childFn', this.message); } }
二、调用方法
1、父组件 调用 子组件的方法
在父组件中
<template> <div @click="parentMethod"> <children ref="mychild"></children> </div> </template> <script> import children from 'children.vue' export default { data(){ return { } }, components: { children }, methods:{ parentMethod() { this.$refs.mychild.childMethod(); } } } </script>
在子组件中
<template> <div> </div> </template> <script> export default { data(){ return { } }, methods:{ childMethod() { alert('My name is asd') } } } </script>
2、子组件 调用 父组件的方法
在父组件中
<template> <div> <asd @listenToChildEvent="showMsgFromChild"></asd> <div>{{ sss }}</div> </div> </template> <script> import asd from './compontents/asd.vue' export default { components:{asd}, data () { return { sss:'' } }, methods: { showMsgFromChild(data){ this.sss = data }, } } </script>
在子组件中
<template> <button @click="sendMsgToParent()"> 我是子组件,点击我向父组件传值 </button> </template> <script> export default { data(){ return { message:'我是子组件的数据' } }, methods:{ sendMsgToParent() { this.$emit("listenToChildEvent",this.message) } } } </script>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗