文章目录
需求
我如何用代码来实现 ElementPlus 的菜单的展开和收缩呢?

几次探索
-
尝试通过找到节点之后,使用
click事件,失败了// 伪代码如下 const handleFindNodeAndClick = () => { console.log('handleFindNodeAndClick'); const node:any = document.querySelector('.el-menu') console.log('node:>>', node); if (node) { const children = node.children; console.log('children:>>', children); children[2].click() } } -
尝试模拟鼠标点击事件,失败了
// 大致思路如下 const menuItem = document.querySelector('.menu-item'); // 创建一个鼠标事件 const event = new MouseEvent('click', { bubbles: true, cancelable: true, view: window }); // 派发鼠标事件 menuItem.dispatchEvent(event);
官网寻找线索(解决办法)
不得已去官网上翻翻看,看到个这个 Menu Exposes,看着说明很像是我的需求啊,但是不太会用呢

然后,我来到了这个后台管理框架的 Layout 找到了这个组件,找到了这个组件,打印了它的 ref 一看!

在浏览器里看看

可以简单测试一下

效果出来了

那么可以把这个 ref 放到 Store 里,然后在其他组件中拿到这个 菜单的实例,即可全局调用这个方法了!










