首先,我们从结构上来看,这段代码里面,用到的组件从上到下分别是:
el-menu, el-submenu, el-menu-item-group, el-menu-item
那么这几个组件之间的层级关系到底是什么样的呢,我们看一下element的源码
这里我只贴template部分,主要是为了看清结构
首先是el-menu
:class="{
'el-menu--horizontal': mode === 'horizontal',
'el-menu--dark': theme === 'dark'
}"
>
这里我们可以看到就是一个ul,然后里面加的东西都用slot
然后是el-submenu
:class="{
'el-submenu': true,
'is-active': active,
'is-opened': opened
}"
>
这里最外层是一个li,里面用来定制标题,这是一个具名slot,可以点这里链接描述看一下官方文档的解释。
再往下主要是
也就是说slot里的就是下面的el-menu-item-group的内容,这里又创建了一个ul,那么slot里面的东西el-menu-item-group就应该是li为根节点
然后再看el-menu-item-group,确实是以li为根节点<