您的位置:首页 > 财经 > 产业 > 佛山网站建设全方位服务_网络营销策划创意案例点评_今天发生了什么重大新闻_便民信息微信平台推广

佛山网站建设全方位服务_网络营销策划创意案例点评_今天发生了什么重大新闻_便民信息微信平台推广

2024/11/18 11:24:22 来源:https://blog.csdn.net/lf_1234/article/details/142382290  浏览:    关键词:佛山网站建设全方位服务_网络营销策划创意案例点评_今天发生了什么重大新闻_便民信息微信平台推广
佛山网站建设全方位服务_网络营销策划创意案例点评_今天发生了什么重大新闻_便民信息微信平台推广

父子组件之间可以通过事件和 props 进行通信,但通常是单向的:父组件向子组件传递数据(props),子组件向父组件发送事件($emit)。

方式

  1. 父组件传递数据给子组件:

    • 使用 props
  2. 子组件通知父组件:

    • 使用 $emit 发送事件。

示例

  • 父组件:

    Vue.component('parent', {data() {return {message: 'Hello from Parent!'};},template: `<child @child-event="handleChildEvent" :message="message"></child>`,methods: {handleChildEvent(data) {console.log(data); // 处理子组件传来的数据}}
    });
    
  • 子组件:

    Vue.component('child', {props: ['message'],template: `<div><p>{{ message }}</p><button @click="notifyParent">Notify Parent</button></div>`,methods: {notifyParent() {this.$emit('child-event', 'Message from Child!');}}
    });
    

下面是一个简单的 Vue.js 示例,展示父子组件之间的交互:

示例代码

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>父子组件示例</title>
</head>
<body><div id="app"><parent-component></parent-component>
</div><script src="https://cdn.jsdelivr.net/npm/vue@2.5.21/dist/vue.min.js"></script>
<script>// 子组件Vue.component('child-component', {props: ['message'],template: `<div><p>子组件消息: {{ message }}</p><button @click="notifyParent">通知父组件</button></div>`,methods: {notifyParent() {this.$emit('child-event', '来自子组件的消息!');}}});// 父组件Vue.component('parent-component', {data() {return {parentMessage: '来自父组件的消息!'};},template: `<div><h1>父组件</h1><child-component :message="parentMessage" @child-event="handleChildEvent"></child-component></div>`,methods: {handleChildEvent(data) {alert(data); // 弹出子组件发送的消息}}});// 创建 Vue 实例new Vue({el: '#app'});
</script></body>
</html>

功能说明

  • 父组件: 显示一条消息,并将其传递给子组件。
  • 子组件: 接收父组件的消息,并提供一个按钮,点击后通过 $emit 触发事件,将消息传回父组件。
  • 事件处理: 父组件处理子组件的事件,弹出一个提示框显示消息。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com