<template>
<div class="dinner-left">
<el-menu default-active="2" class="el-menu-vertical-demo" :collapse="isCollapse" @open="handleOpen"
@close="handleClose" background-color="transparent" text-color="#ffffff" active-text-color="#FFFAFA">
<el-sub-menu index="1">
<!-- 一级菜单 -->
<template #title>
<el-icon>
<location />
</el-icon>
<span>系统设置</span>
</template>
<!-- 二级菜单 -->
<el-menu-item index="1-1">item one</el-menu-item>
</el-sub-menu>
</el-menu>
</div>
</template>
<script>
import {
ref
} from 'vue'
import {
Location,
} from '@element-plus/icons-vue'
export default {
name: 'lelemenu',
components: {
Location,
},
setup(props,{root}) {
const isCollapse = ref(false)
console.log(root.$router)
return {
isCollapse,
}
}
}
</script>
<style>
.dinner-left {
width: 200px;
background-color: #344a5f;
color: #FFFFFF;
position: absolute;
margin-left: 0px;
top: 50px;
bottom: 0px;
}
</style>
这是哪个菜单的页面,下面的是main.js,引用了router,也配置了
```javascript
import {
createApp
} from 'vue'
import App from './App.vue'
import router from './router'
import store from './store'
import ElementPlus from 'element-plus'
import 'element-plus/dist/index.css'
createApp(App).use(store).use(ElementPlus).use(router).mount('#app')
router中的index.js如下
```javascript
import {
createRouter,
createWebHistory
} from 'vue-router'
const routes = [{
path: '/',
name: 'Login',
component: () => import( /* webpackChunkName: "about" */ '../views/login/Login.vue')
}, {
path: '/home',
name: 'Home',
redirect: 'homeIndex',
component: () => import( /* webpackChunkName: "about" */ '../views/home/index.vue'),
children: [
{
path: '/homeIndex',
name: 'HomeIndex',
component: () => import( /* webpackChunkName: "about" */ '../views/home/HomeIndex.vue')
},
]
}, {
path: '/about',
name: 'About',
// route level code-splitting
// this generates a separate chunk (about.[hash].js) for this route
// which is lazy-loaded when the route is visited.
component: () => import( /* webpackChunkName: "about" */ '../views/About.vue')
}]
const router = createRouter({
history: createWebHistory(process.env.BASE_URL),
routes
})
router.beforeEach((to, from) => {
const token = sessionStorage.getItem("token")
if (to.fullPath != '/') {
console.log(from)
if (token === null || token === '') {
to.fullPath = "/"
}
}
return true;
})
export default router
总是报错:
这是我哪里配置的不对吗,请指教
直接使用之前vue2.x的this.$rotuer.push()不好用, rotuer不被识别,
解决:
script中导入这行import { useRouter } from 'vue-router';
setup中导入 const router = useRouter();
然后在按钮方法中添加router.push('/');加上你要跳转的路径即可