⚠️这里使用了route.name,因此需要注意的是路由中的name和MenuItem中的name相互对应。
<template>
<div id="app" class="layout">
<Layout>
<Header>
<Menu mode="horizontal" :active-name="activeIndex" theme="dark" >
<img class="layout-logo" src="http://cdn-cnc.17zuoye.cn/ucenter/public/skin/default/v5/images/logo-new.png?v=2bee166951" />
<div class="layout-nav">
<MenuItem name="home" to="/">
<Icon type="ios-home"></Icon>
主页
</MenuItem>
<MenuItem name="start" to="start">
<Icon type="ios-calendar"></Icon>
页面一
</MenuItem>
<MenuItem name="progress" to="progress">
<Icon type="ios-pie" name="progress"></Icon>
页面二
</MenuItem>
<MenuItem name="model" to="model">
<Icon type="ios-document"></Icon>
页面三
</MenuItem>
<MenuItem name="resource" to="resource">
<Icon type="ios-calculator"></Icon>
页面四
</MenuItem>
<MenuItem name="alogs" to="alogs">
<Icon type="ios-create"></Icon>
页面五
</MenuItem>
</div>
</Menu>
</Header>
<Breadcrumb :style="{padding: '20px 0'}">
</Breadcrumb>
<Content :style="{padding: '0 50px'}">
<Card>
<div>
<router-view/>
</div>
</Card>
</Content>
<Footer class="layout-footer-center">2020 ~ 2021 © lyz</Footer>
</Layout>
</div>
</template>
<script>
export default {
name: "App",
data() {
return {
activeIndex: this.$route.name
};
},
watch: {
$route(to, from) {
this.activeIndex = to.name;
},
}
};
</script>
<style>
* {
margin: 0;
padding: 0;
}
.layout{
background: #f5f7f9;
position: relative;
overflow: hidden;
}
.layout-logo{
width: 100px;
height: 30px;
border-radius: 3px;
float: left;
position: relative;
top: 15px;
left: 20px;
}
.layout-nav{
width: 800px;
margin: 0 auto;
margin-right: 20px;
}
.layout-footer-center{
text-align: center;
}
.ivu-layout-content{
min-height: calc(100vh - 173px);
}
</style>