【Vue】父子组件值及方法传递使用

news/2025/3/14 1:53:10/

父子组件值、方法引用

1、值

1.1 父组件获取子组件值

父组件

<template><div><button @click="getChildValue">click</button><child ref="child"></child></div>
</template><script>
import Child from './Child.vue'export default {name: "Parent",components: {Child},data() {return {}},methods: {getChildValue() {console.log(this.$refs.child.msg1)}}
}
</script>

子组件

<template><div id="child"><div>{{ msg1 }}</div></div>
</template><script>
export default {name: "Child",data() {return {msg1: "i am child"};},methods: {}
}
</script>

测试结果在控制台查看

1.2 子组件获取父组件值

方式1:

props: ['parentName']

方式2:

props: {parentName: String //这样可以指定传入的类型,如果类型不对,会警告
}

方式3:

props: {msgVal: {type: String, //指定传入的类型//type 也可以是一个自定义构造器函数,使用 instanceof 检测。default: '' //这样可以指定默认的值}
}

注意:props 会在组件实例创建之前进行校验,所以在 default 或 validator 函数里,
诸如 data、computed 或 methods 等实例属性还无法使用

父组件

<template><div><child ref="child" :parentName="parentName"></child></div>
</template><script>
import Child from './Child.vue'export default {name: "Parent",components: {Child},data() {return {parentName:'i am parent'}},methods: {}
}
</script>

子组件

<template><div id="child"><button @click="getParentsValue">获取父组件值</button></div>
</template><script>
export default {name: "Child",props:['parentName'],data() {return {};},methods: {getParentsValue(){console.log(this.parentName)}}
}
</script>

2、方法

2.1 父组件调用子组件方法

父组件

<template><div><button @click="clickChildMethodNoParams">调用子组件方法 无参数 </button><button @click="clickChildMethodParams">调用子组件方法 有参数 </button><child ref="child" ></child></div>
</template><script>
import Child from './Child.vue'
export default {name: "Parent",components: {Child},data() {return {}},methods: {clickChildMethodNoParams(){this.$refs.child.childMethod();},clickChildMethodParams(){this.$refs.child.childMethodAddParams(' i am parent ');}}
}
</script>

子组件

<template><div id="child"><p> this is child compoents </p></div>
</template><script>
export default {name: "Child",data() {return {};},methods: {childMethod(){console.log('i am child method')},childMethodAddParams(param){console.log('i am child method ',param)}}
}
</script>

2.2 子组件调用父组件方法

父组件

<template><div><child ref="child"@clickChildMethodNoParams="clickChildMethodNoParams"@clickChildMethodParams="clickChildMethodParams"></child></div>
</template><script>
import Child from './Child.vue'export default {name: "Parent",components: {Child},data() {return {}},methods: {clickChildMethodNoParams(){console.log('i am parent')},clickChildMethodParams(params){console.log('i am parent '+ params)}}
}
</script>

子组件

<template><div id="child"><button @click="childParentMethodNoParams">调用父组件方法 无参数 </button><button @click="childParentMethodParams">调用父组件方法 有参数 </button><p> this is child compoents </p></div>
</template><script>
export default {name: "Child",data() {return {};},methods: {childParentMethodNoParams(){this.$emit('clickChildMethodNoParams');},childParentMethodParams(){this.$emit('clickChildMethodParams','hello i am child ');}}
}
</script>

http://www.ppmy.cn/news/1001417.html

相关文章

1-搭建一个最简单的验证平台UVM,已用Questasim实现波形!

UVM-搭建一个最简单的验证平台&#xff0c;已用Questasim实现波形 1&#xff0c;背景知识2&#xff0c;".sv"文件搭建的UVM验证平台&#xff0c;包括代码块分享3&#xff0c;Questasim仿真输出&#xff08;1&#xff09;compile all&#xff0c;成功&#xff01;&…

为了规避风险,如何给大模型打水印?

大型语言模型&#xff0c;如最近开发的ChatGPT&#xff0c;可以撰写文件、创建可执行代码和回答问题&#xff0c;通常具有人类般的能力。 随着这些大模型的应用越来越普遍&#xff0c;越来越大的风险也显现了出来&#xff0c;它们可能被用于恶意目的。这些恶意目的包括&#xf…

php运算符的短路特性

php运算符的短路特性 1、逻辑运算符&#xff1a;逻辑与&#xff08;&&)和逻辑或&#xff08;||&#xff09;&#xff0c;存在着短路特性 PHP中有以下两个运算符具有短路的特性&#xff0c;他们是逻辑运算符的逻辑与&#xff08;&&)和逻辑或&#xff08;||&am…

C++ MQTT客户端

下面是一个简单的ROS节点的C MQTT客户端的示例&#xff0c;包括.h和.cpp文件。 很抱歉&#xff0c;我之前提供的代码中似乎有一些错误。下面是更新后的代码&#xff0c;修复了mqtt命名空间中disconnect_response的问题&#xff1a; mqtt_client.h&#xff1a; #ifndef MQTT_…

VR虚拟仿真技术在道路桥梁中有哪些具体应用?

虚拟现实(VR)是一种新兴的技术&#xff0c;可以为桥梁工程提供许多应用场景。以下是一些可能的应用场景&#xff1a; 1.桥梁设计和模拟 VR元宇宙可以用于桥梁的设计和模拟。工程师可以使用VR技术来创建桥梁的三维模型&#xff0c;并对其进行测试和优化。这可以帮助工程师更好地…

排查管家婆财务试算不平衡

总账的财务期初试算不平衡&#xff0c;就会导致不能成功开账。当分销A\V系列总账版本软件中出现试算不平衡的情况&#xff0c;应该如何排查&#xff1f;请按照下面的排查步骤操作吧。 PART.01 期初建账-账务期初&#xff0c;币种选择【综合本位币】&#xff0c;点下面的【试算…

微信小程序使用editor富文本编辑器 以及回显 全屏弹窗的模式

<!--富文本接收的位置--><view class"white-box"><view class"title"><view class"yellow-fence"></view><view class"v1">教研记录</view></view><view class"add-btn"…

测试工程师与研发工程师之间的差别

目录 为什么要讨论二者的差别? 测试工程师的分类 测试工程师与研发工程师之间的差别