父子组件传值的多种方法
Posted 火腿肠烧烤大赛冠军
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了父子组件传值的多种方法相关的知识,希望对你有一定的参考价值。
props、emit
<!-- 父组件 -->
<template>
<div class="test">
<test-com @childFn="parentFn"></test-com>
<br/>
子组件传来的值 : message
</div>
</template>
<script>
export default
// ...
data:
message: ''
,
methods:
parentFn(payload)
this.message = payload;
</script>
<!-- 子组件 -->
<template>
<div class="testCom">
<input type="text" v-model="message" />
<button @click="click">Send</button>
</div>
</template>
<script>
export default
// ...
data()
return
// 默认
message: '我是来自子组件的消息'
,
methods:
click()
this.$emit('childFn', this.message);
</script>
p a r e n t 和 parent和 parent和children获取父子组件参数
$children[i].params
this.$parent.params
兄弟之间传值===Vuex
兄弟之间传值===eventBus
provide inject(用于层级很深的父子组件传参)
//父组件示例
<template>
<div>
<childCom></childCom>
</div>
</template>
<script>
import childCom from '../components/childCom'
export default
name: "Parent",
provide: //重要一步,在父组件中注入一个变量
msg: "demo"
,
components:
childCom
//子组件示例,这个不管嵌套了多少层,都能请求到父组件中注册的变量
<template>
<div>
msg
</div>
</template>
<script>
export default
name: "childCom",
inject: ['msg'],//子孙组件中使用inject接住变量即可
</script>
以上是关于父子组件传值的多种方法的主要内容,如果未能解决你的问题,请参考以下文章