关于 dropdownItem 点击跳转后自动收起 dropdown

来源:12-2 为生产环境生成代码

慕莱坞3345942

2022-07-29

老师你好,想问一下关于您代码中实现跳转后自动收起 dropdown 的相关问题:

使用 mitt 创建 emitter 后,让子组件去触发'dropdown-item-clicked'事件,同时传回{ e, props },此时看到您'dropdown-item-clicked'自定义事件的 callback 是

    const dropDownItemClicked = (e: any) => {
      if (e.props.closeAfterClick) {
        isOpen.value = false
      }
      context.emit('item-clicked', e)
    }

没有看懂这里为什么需要子组件将 { e, props } 传回来,以及不知道 item-clickGlobalHeader 中的 closeAfterClick 是做什么的。

为什么不能在 dropDownItemClicked 函数中直接 调用toggleOpen() 将组件隐藏呢?

写回答

1回答

张轩

2022-07-29

同学你好

这里只是想通过属性更精细化的调配是否关闭,因为有的 Item 点击有可能不想关闭整个菜单,所以可以通过这个 props.closeAfterClick 可以实现这个对应的功能。

传回来 e,props 只是个人习惯,这样可以为未来提供更加扩展的功能提供事件和参数。比如用户想知道点击的是哪个 item,这样有了 e 这个事件对象就更方便一些。

0
1
慕莱坞3345942
非常感谢!
2022-07-29
共1条回复

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

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

3142 学习 · 2313 问题

查看课程