emitter疑惑,为什么emit出去的validateInput不等于callback而等于callback的参数

来源:5-12 ValidateForm 编码第四部分 - 大功告成

xuan一

2022-05-13


 //ValidateInpute.vue
 onMounted(() => {
  emitter.emit('form-item', validateInput)
})
//ValidateForm .vue
const callback = (func: ValidateFunc) => {
      funcArr.push(func)
    }
 emitter.on('form-item', callback)
 onUnmounted(() => {
   emitter.off('form-item', callback)
   funcArr = []
 })

老师ValidateInput.vue里面 meit的 validateInput函数到ValidateForm.vue里面去试添加到callback这个函数里没作为func这个参数吗?而不是这个validateInput 等于这个callback。

因为我打印出来这个func就是validateInput,所以不是很理解为什么这个validateinput 不就是这个callback而是func。

写回答

1回答

张轩

2022-05-14

同学你好 对不起没特别看懂你的描述

mitt 这个库的运作机制就是这样 emit('form-item', validateInput)

接收到的地方

emitter.on('form-item', callback) 

注意这个 callback 并不等于 validateInput,而是一个以 validateInput 为参数的函数

也就是

emitter.on('form-item', (e) => { 这个 e 就是 validateInput})

详情可见文档: https://github.com/developit/mitt

1
1
xuan一
非常感谢!
2022-05-15
共1条回复

Vue3 + TS 仿知乎专栏企业级项目

带你完成前后端分离复杂项目,率先掌握 vue3 造轮子技能

3142 学习 · 2313 问题

查看课程