当前位置: 首页> 财经> 产业 > 云南文山在哪里_运营公司_个人网站的制作模板_seo网站关键词优化快速官网

云南文山在哪里_运营公司_个人网站的制作模板_seo网站关键词优化快速官网

时间:2025/8/30 0:48:31来源:https://blog.csdn.net/Vae2437426397/article/details/146498228 浏览次数:0次
云南文山在哪里_运营公司_个人网站的制作模板_seo网站关键词优化快速官网

1. 基本原理

子组件可以借助 $emit 触发一个自定义事件,父组件监听这个自定义事件,当事件触发时,父组件执行对应的处理函数。

2. 基本语法

在子组件里,使用 this.$emit('事件名', 参数) 触发自定义事件,参数是可选的。
在父组件中,通过 @事件名="处理函数" 监听子组件触发的事件。

3. 简单示例

子组件(Child.vue)
<template><button @click="sendMessage">发送消息给父组件</button>
</template><script>
export default {methods: {sendMessage() {this.$emit('customEvent', '这是来自子组件的消息');}}
}
</script>

在这个子组件中,定义了一个按钮,点击按钮时调用 sendMessage 方法,该方法使用 $emit 触发名为 customEvent 的自定义事件,并传递了一个字符串参数。

父组件(Parent.vue)
<template><view><child @customEvent="handleCustomEvent"></child><text>{{ messageFromChild }}</text></view>
</template><script>
import Child from './Child.vue';export default {components: {Child},data() {return {messageFromChild: ''};},methods: {handleCustomEvent(message) {this.messageFromChild = message;}}
}
</script>

在父组件中,引入并使用了子组件 Child,通过 @customEvent="handleCustomEvent" 监听子组件触发的 customEvent 事件。当事件触发时,调用 handleCustomEvent 方法,该方法接收子组件传递的参数,并将其赋值给 messageFromChild 变量。

4. 携带多个参数

子组件可以传递多个参数给父组件。

子组件(Child.vue)
<template><button @click="sendData">发送多个参数</button>
</template><script>
export default {methods: {sendData() {this.$emit('multiParamsEvent', '参数1', 123);}}
}
</script>
父组件(Parent.vue)
<template><view><child @multiParamsEvent="handleMultiParamsEvent"></child></view>
</template><script>
import Child from './Child.vue';export default {components: {Child},methods: {handleMultiParamsEvent(param1, param2) {console.log('接收到的参数1:', param1);console.log('接收到的参数2:', param2);}}
}
</script>

在这个例子中,子组件触发 multiParamsEvent 事件时传递了两个参数,父组件的处理函数接收这两个参数并进行处理。

5. 动态事件名

在某些场景下,事件名可以是动态的。

子组件(Child.vue)
<template><button @click="sendDynamicEvent">发送动态事件</button>
</template><script>
export default {methods: {sendDynamicEvent() {const eventName = 'dynamicEvent';this.$emit(eventName, '动态事件的数据');}}
}
</script>
父组件(Parent.vue)
<template><view><child @dynamicEvent="handleDynamicEvent"></child></view>
</template><script>
import Child from './Child.vue';export default {components: {Child},methods: {handleDynamicEvent(data) {console.log('接收到的动态事件数据:', data);}}
}
</script>

6. 注意事项

  • 事件名大小写:在 HTML 模板中,事件名会自动转换为小写,因此建议使用短横线命名法(如 custom-event)来定义事件名。
  • 单向数据流:虽然 $emit 用于子组件向父组件传递数据,但要遵循单向数据流原则,避免在子组件中直接修改父组件的数据。

关键字:云南文山在哪里_运营公司_个人网站的制作模板_seo网站关键词优化快速官网

版权声明:

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

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

责任编辑: