vue中$emit的用法
引自:https://www.cnblogs.com/sweeneys/p/10201458.html
一.事件
关于什么是JavaScript事件可以参考:https://www.w3schools.com/js/js_events.asp
二.$emit
vue中对$emit的定义见:
vm.$emit( eventName, […args] )
-
参数:
{string} eventName
[...args]
触发当前实例上的事件。附加参数都会传给监听器回调。
三.用途与示例
1.父组件可以使用 props 把数据传给子组件。
1.子组件可以使用 $emit 触发父组件的自定义事件。
子组件:
<template> <div id="translate-form"> <form> <input type="text" v-model="textToTranslate" placeholder="输入需要翻译的内容"> <select> <option value="en">English</option> </select> <input type="submit" value="翻译" v-on:click="formSubmit"> </form> </div> </template> <script> export default { name: 'TranslateForm', data:function(){ return{ textToTranslate:'', } }, methods: { formSubmit: function(e){ this.$emit('formSubmit', this.textToTranslate); //父组件监听的名字必须是formSubmit e.preventDefault(); } } } </script> <style> </style>
父组件:
<template> <div id="app"> <h1>在线翻译</h1> <h5>简单 / 易用 / 便捷</h5> <TranslateForm v-on:formSubmit='translateText'></TranslateForm> </div> </template> <script> import TranslateForm from './components/TranslateForm' export default { name: 'App', components:{ TranslateForm }, methods:{ translateText:function(text){ alert(text) } } } </script> <style> #app { text-align: center; } </style>
当点击子组件的翻译的时候,会将输入的内容弹框:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架