vue基于element路由侧边栏名字跳转

安装路由

在终端用下面语句安装vue的路由,@后面的4是版本号,下载时可自定义版本。

npm install vue-router@4

在main.js中配置路由

import Vue from 'vue'
import App from './App.vue'
//全局引入(在实际项目都是做的按需引入,我这里偷懒就没做了)
import ElementUI from 'element-ui';
import 'element-ui/lib/theme-chalk/index.css';
//引入路由
import router from '../router'

Vue.config.productionTip = false
Vue.use(ElementUI)


new Vue({
  router,
  render: h => h(App),
}).$mount('#app')

#新建一个router文件夹管理路由
有些可能在src文件夹下自带router文件夹,在下面新建index.js管理路由。下面是一个简单例子

import Vue from 'vue'
import VueRouter from 'vue-router'


Vue.use(VueRouter)

export default new VueRouter({
    routes: [
      {
        path:'/',
        name:'Main',
        component: ()=>import('../views/Main.vue'),
        children:[
          {
            path:'home',
            name:'Home',
            component:()=>import('../views/Home')
          }, 
          
          {
            path:'user',
            name:'User',
            component:()=>import('../views/User')
          }
        ]
      } 
    ]
  });

对App.vue做修改

<template>
  <div id="app">
      <router-view></router-view> 
  </div>
</template>

<script>

export default {
  name: 'App'
}
</script>

<style>
html,body{
  margin: 0;
  padding: 0;
}
#app {
  height: 100vh;
}
</style>

对公共侧边栏CommandAside.vue做路由配置。

引入element侧边栏等

一定不要忘记在加router!!!
在这里插入图片描述
将点击跳转写在el-menu-item中:@click=“clickMenu(item)”

<template>
    <el-menu default-active="1-4-1" class="el-menu-vertical-demo"  router active-text-color="#409EFF" @open="handleOpen" @close="handleClose" :collapse="isCollapse">
  <h3>火车站管理系统</h3>
    <el-menu-item  v-for="item in noChildren" :index="item.path" :key="item.path" @click="clickMenu(item)">
    <i :class="'el-icon-'+item.icon"></i>
    <span slot="title">{{item.label}}</span>
</el-menu-item>
</el-menu>
</template>

在下面的method中实现编程式跳转

clickMenu(item){
      this.$router.push(//页面跳转
        {
          name:item.name
        }
      )   
    }

注意用name跳转的原因是我定义了name的属性。但是在整个编程过程中你会发现,定义了很多name。经过我自己的测试,我发现不同.vue文件下name名不相同不影响它的跳转。只要保证它们对于的path是一样的就行。(可能name的作用就是方便函数编程吧)

下面是完整代码。
我只对首页和用户管理也做了路由。其他还没来得及写。

<template>
    <el-menu default-active="1-4-1" class="el-menu-vertical-demo"  router active-text-color="#409EFF" @open="handleOpen" @close="handleClose" :collapse="isCollapse">
  <h3>火车站管理系统</h3>
    <el-menu-item  v-for="item in noChildren" :index="item.path" :key="item.path" @click="clickMenu(item)">
    <i :class="'el-icon-'+item.icon"></i>
    <span slot="title">{{item.label}}</span>
</el-menu-item>
</el-menu>
</template>

<style lang="less" scoped>
  .el-menu-vertical-demo:not(.el-menu--collapse) {
    width: 200px;
    min-height: 400px;
  }
  .el-menu{
    height: 100%;
    border: none;
    h3{
      color: #409EFF;
      text-align:center;
      line-height: 48px
    }
  }
  
</style>

<script>
  export default {
    data() {
      return {
        isCollapse: false,
        menu:[
          {
            path:'/home',
            name:'home',
            label:'系统首页',
            icon:'s-home',
            url:'Home/Home'
          },
          {
            path:'/euser',
            name:'euser',
            label:'系统用户管理',
            icon:'user'
          },
          {
            path:'/pot',
            name:'pot',
            label:'火车站点管理',
            icon:'s-claim'
          },
          {
            path:'/times',
            name:'times',
            label:'火车车次管理',
            icon:'s-shop'
          },
          {
            path:'/journey',
            name:'journey',
            label:'列车行程安排',
            icon:'date'
          },
          {
            path:'/user',
            name:'user',
            label:'乘客信息管理',
            icon:'postcard'
          },
          {
            path:'/timescheck',
            name:'timeschick',
            label:'火车车次查询',
            icon:'set-up'
          },
          {
            path:'/tickercheck',
            name:'tickercheck',
            label:'售票记录查询',
            icon:'tickets',
          },
          {
            path:'/tickerdelete',
            name:'tickerdelete',
            label:'退票查询',
            icon:'refresh-left'
          }  
        ]
      };
    },
    methods: {
      handleOpen(key, keyPath) {
        console.log(key, keyPath);
      },
      handleClose(key, keyPath) {
        console.log(key, keyPath);
      }
    },
    clickMenu(item){
      this.$router.push(//页面跳转
        {
          name:item.name
        }
      )   
    },
    computed:{
      noChildren(){
       return this.menu.filter(item =>!item.Children)//过滤元组
      }
    }
  }
</script>

结果展示

在这里插入图片描述
点击系统首页,最上面的路径可以看出以及进入\home,我在这个界面就写了“主页面”三个字做测试,测试成功。

最后一定要把router写在el-menu里面!!!!这个是element组件,一定要做路由才行。

  • 6
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Vue中配置侧边栏路由跳转的步骤如下: 1. 首先,在router文件夹下创建一个index.js文件来管理路由。在该文件中,使用VueRouter插件,并导出一个新的VueRouter实例。在routes数组中定义各个路由的路径、名称和组件。例如,可以定义一个名为Main的路由,其路径为'/',组件为Main.vue。在Main路由下可以再定义子路由,如Home和User。\[1\] 2. 在App.vue文件中,修改模板部分,添加<router-view>标签,用于显示当前路由对应的组件。\[1\] 3. 在CommandAside.vue文件中,进行路由配置。可以引入element-ui的侧边栏组件等。\[1\] 4. 在终端中使用npm install命令安装vue-router插件,可以指定版本号。例如,使用npm install vue-router@4安装vue-router的4版本。\[2\] 5. 在main.js文件中,配置路由。首先引入Vue和App.vue组件,然后引入element-ui,并使用Vue.use(ElementUI)来全局引入element-ui。最后创建一个新的Vue实例,将router对象传入,并将App组件渲染到#app元素中。\[2\] 以上是在Vue中配置侧边栏路由跳转的基本步骤。具体的代码实现可以参考上述引用的内容。\[1\]\[2\]\[3\] #### 引用[.reference_title] - *1* *2* [vue基于element路由侧边栏名字跳转](https://blog.csdn.net/m0_61686427/article/details/124437154)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [Vue3项目-侧边栏跳转](https://blog.csdn.net/dayouan/article/details/129876149)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

caroline~安

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值