web前端全系列 教程
1839个小节阅读:2244.3k
目录
鸿蒙应用开发
C语言快速入门
JAVA全系列 教程
面向对象的程序设计语言
Python全系列 教程
Python3.x版本,未来主流的版本
人工智能 教程
顺势而为,AI创新未来
大厂算法 教程
算法,程序员自我提升必经之路
C++ 教程
一门通用计算机编程语言
微服务 教程
目前业界流行的框架组合
web前端全系列 教程
通向WEB技术世界的钥匙
大数据全系列 教程
站在云端操控万千数据
AIGC全能工具班
A A
White Night
组件之间传递数据,有了props
的父传子,还需要emit
子传父
emit
函数的类型标注也可以实现类型声明
xxxxxxxxxx
<template>
<button @click="clickHandler">发送数据</button>
</template>
<script setup lang="ts">
// const emit = defineEmits(["onSomeEvent"])
const emit = defineEmits<{
(e:'onSomeEvent',value:string):void
}>()
const clickHandler = () =>{
emit("onSomeEvent","list数据")
}
</script>
xxxxxxxxxx
<template>
<HomeListView @onSomeEvent="getSomeData"/>
</template>
<script setup lang="ts">
import HomeListView from "./HomeListView.vue"
const getSomeData = (data:string) =>{
console.log(data)
}
</script>
基于类型的声明使我们可以对所触发事件的类型进行更细粒度的控制。
若没有使用 <script setup>
,defineComponent()
也可以根据 emits
选项推导暴露在 setup 上下文中的 emit
函数的类型
xxxxxxxxxx
<template>
<button @click="clickHandler">发送数据</button>
</template>
<script lang="ts">
import { defineComponent } from 'vue'
export default defineComponent({
emits: ['onSomeEvent'],
setup(props,{ emit }){
const clickHandler = function(){
emit('onSomeEvent','list数据2') // <-- 类型检查 / 自动补全
}
return {
clickHandler
}
}
})
</script>