uniapp父子组件通信
在Uni-app中,可以使用props和$emit方法实现父子组件之间的通信。
父组件向子组件传递数据(props):
1. 在父组件中,在子组件的标签上使用属性绑定方式传递数据
<template>
<child-component :message="parentMessage"></child-component>
</template>
2. 然后,在子组件中通过props接收父组件传递过来的数据
<template>
<div>{{ message }}</div>
</template>
<script>
export default {
props: {
message: String
}
};
</script>
这样,父组件中的parentMessage
就会传递给子组件的message
。
子组件向父组件传递数据($emit):
1. 在子组件中,可以通过$emit方法触发自定义事件,并传递数据给父组件
<template>
<button @click="sendDataToParent">发送数据给父组件</button>
</template>
<script>
export default {
methods: {
sendDataToParent() {
this.$emit('childEvent', 'Hello from child');
}
}
};
</script>
当点击按钮时,会触发sendDataToParent
方法,并使用$emit
方法触发名为childEvent
的自定义事件,并传递数据'Hello from child'
给父组件。
2. 在父组件中,可以使用v-on
指令监听子组件触发的自定义事件,并在事件处理函数中获取子组件传递的数据
<template>
<child-component @childEvent="receiveDataFromChild"></child-component>
</template>
<script>
export default {
methods: {
receiveDataFromChild(data) {
console.log(data); // 输出 'Hello from child'
}
}
};
</script>
通过在子组件的标签上使用v-on
指令和监听子组件的自定义事件childEvent
,可以在父组件中的receiveDataFromChild
方法中获取子组件传递的数据。