Vue父子组件通讯方式及实现方法
更新时间:2023年06月25日 11:12:54 作者:前端每日三省
这篇文章主要介绍了Vue父子组件通讯方式及实现方法,文中通过代码示例介绍的非常详细,对我们的学习或工作有一定的帮助,感兴趣的同学可以参考阅读下
Vue父子组件通讯方式及实现
1. props和$emit
父组件通过props
向子组件传递数据,子组件通过$emit
触发父组件定义的事件来传递数据。
父组件:
<template> <div> <child-component :message="message" @update-message="updateMessage"></child-component> </div> </template> <script> import ChildComponent from './ChildComponent.vue'; export default { name: 'ParentComponent', components: { ChildComponent }, data() { return { message: 'Hello World!' } }, methods: { updateMessage(newMessage) { this.message = newMessage; } } } </script>
子组件:
<template> <div> <p>{{ message }}</p> <button @click="updateMessage">Update Message</button> </div> </template> <script> export default { name: 'ChildComponent', props: ['message'], methods: { updateMessage() { this.$emit('update-message', 'New Message'); } } } </script>
2. $parent和$children
父组件可以通过$children
属性获取到所有子组件的实例,并通过$parent
属性获取到自己的父组件实例。
父组件:
<template> <div> <child-component></child-component> </div> </template> <script> import ChildComponent from './ChildComponent.vue'; export default { name: 'ParentComponent', components: { ChildComponent }, methods: { updateMessage(newMessage) { this.message = newMessage; } } } </script>
子组件:
<template> <div> <p>{{ message }}</p> <button @click="updateMessage">Update Message</button> </div> </template> <script> export default { name: 'ChildComponent', data() { return { message: 'Hello World!' } }, methods: { updateMessage() { this.$parent.updateMessage('New Message'); } } } </script>
3. $refs
父组件可以通过ref
属性给子组件设置一个引用,然后通过$refs
获取到子组件的实例,从而调用子组件的方法或者访问子组件的属性。
父组件:
<template> <div> <child-component ref="child"></child-component> </div> </template> <script> import ChildComponent from './ChildComponent.vue'; export default { name: 'ParentComponent', components: { ChildComponent }, methods: { updateMessage() { this.$refs.child.updateMessage('New Message'); } } } </script>
子组件:
<template> <div> <p>{{ message }}</p> <button @click="updateMessage">Update Message</button> </div> </template> <script> export default { name: 'ChildComponent', data() { return { message: 'Hello World!' } }, methods: { updateMessage(newMessage) { this.message = newMessage; } } } </script>
到此这篇关于Vue父子组件通讯方式及实现方法的文章就介绍到这了,更多相关Vue父子组件通讯内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
VueX mapGetters获取Modules中的Getters方式
这篇文章主要介绍了VueX mapGetters获取Modules中的Getters方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2022-08-08Vue el-autocomplete远程搜索下拉框并实现自动填充功能(推荐)
在elementui Input输入框中可以找到远程搜索组件,获取服务端的数据。这篇文章主要给大家介绍Vue el-autocomplete远程搜索下拉框并实现自动填充功能,感兴趣的朋友一起看看吧2019-10-10vue2+element-ui+nodejs实现图片上传和修改图片到数据库的方法
在Web开发中经常需要使用图片,有时候需要对图片进行上传,这篇文章主要给大家介绍了关于vue2+element-ui+nodejs实现图片上传和修改图片到数据库的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下2024-04-04
最新评论