关于$emit的用法
1、父组件可以使用 props 把数据传给子组件。
2、$emit子组件调用父组件的方法并传递数据
示例
父组件 $emitFa.vue
<template>
<div>
<div>$emit子组件调用父组件的方法并传递数据</div>
<h1>父组件数据:{{msg}}</h1>
<emit-ch @updateInfo="updateInfo" :sendData="msg"></emit-ch>
</div>
</template>
<script>
import emitCh from './$emitCh'
export default {
name: 'emitFa',
components: { emitCh },
data () {
return {
msg: '北京'
}
},
methods: {
updateInfo (data) { // 点击子组件按钮时触发事件
console.log(data)
this.msg = data.city // 改变了父组件的值
}
}
}
</script>
子组件 $emitCh.vue
<template>
<div class="train-city">
<h3>父组件传给子组件的数据:{{sendData}}</h3>
<br/><button @click='select()'>点击子组件</button>
</div>
</template>
<script>
export default {
name: 'emitCh', // 相当于一个全局 ID,可以不写,写了可以提供更好的调试信息
props: ['sendData'], // 用来接收父组件传给子组件的数据
data () {
return {
}
},
computed: {
},
methods: {
select () {
let data = {
city: '杭州'
}
this.$emit('updateInfo', data)// select事件触发后,自动触发updateInfo事件
}
}
}
</script>
路由
import Vue from 'vue'
import Router from 'vue-router'
import EmitFa from '@/components/$emitFa'// 父组件
import EmitCh from '@/components/$emitCh' // 子组件
Vue.use(Router)
export default new Router({
// mode: 'history', // 更改模式,去掉地址栏的 #
routes: [
{
path: '/',
name: 'EmitFa',
component: EmitFa,
children: [{
path: 'EmitCh',
name: 'EmitCh',
component: EmitCh
}]
}
]
})
转载自 https://www.jianshu.com/p/d9ea3bef858b
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了