我需要去掉这一层div 怎么做到?
现在直接去掉,会报错。
这是组件递归产生elementUI菜单。
因为有这层div,导致elementUI 框架的样式 无法生效。。因为那个样式用了 > 符号,寻找直接子级。。
有这一层div,导致我写了下面难看的三条样式
我需要去掉这一层div 怎么做到?
现在直接去掉,会报错。
这是组件递归产生elementUI菜单。
因为有这层div,导致elementUI 框架的样式 无法生效。。因为那个样式用了 > 符号,寻找直接子级。。
有这一层div,导致我写了下面难看的三条样式
可以把循环放到父组件
<template>
<el-menu router :default-active="$route.path" :collapse="$store.state.isCollapse">
<submenu v-for="menu in $store.state.menuList" :menu="menu"/>
</el-menu>
</template>
<template>
<el-submenu :index="this.menu.uri" v-if="this.menu.children">
<template slot="title">
<i :class="this.menu.icon"></i>
<span>{{this.menu.title}}</span>
</template>
<submenu v-for="childrenMenu in this.menu.children" :menu="childrenMenu"/>
</el-submenu>
<el-menu-item :index="this.menu.uri" v-else>
<i :class="this.menu.icon"></i>
<span>{{this.menu.title}}</span>
</el-menu-item>
</template>
<script>
export default {
name: "submenu",
props: ["menu"]
}
</script>
你把第二个template去掉,然后把它里面的v-for="(item,index) in resultArray"放在第一个template里面。因为template单组件必须要有一个父节点div,就是template下面必须有个div包作为父级,再写其他代码,所以你的那个div不能去掉。如果还有问题,那就把这个div放在第二个template后面试下。你去看看template的代码格式。
从功能上来讲,你这个组件是个菜单,并且你是在el-menu的基础上实现的,为何你要把el-menu这个节点写在父组件当中?菜单组件就应该封装玩所有菜单功能,你这样会产生el-menu依赖,如果要更换菜单的实现或者整体样式或者el-element对el-menu升级,这样做是很麻烦的事情
10 回答11.1k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决
3 回答5.1k 阅读✓ 已解决
3 回答1.9k 阅读✓ 已解决
2 回答4.7k 阅读✓ 已解决
vue 的函数式组件支持返回数组, 不需要 root 元素包裹.
可能有打字错误, 你自己检查下