vue+elementui实现侧边导航,select菜单激活回调函数实现路由跳转

1、系统页面布局采用的是elementui布局

<el-container>
                <el-aside width="200px">
                    <el-menu @select="menuClick">
<!--                        select是菜单激活回调-->
                        <el-submenu index="1">
                            <template slot="title"><i class="el-icon-message"></i>用户管理</template>
                            <el-menu-item-group >
                                <el-menu-item index="/adminhome/createuser">创建用户</el-menu-item>
                            </el-menu-item-group>
                            <el-menu-item-group >
                                <el-menu-item index="1-2">选项2</el-menu-item>
                            </el-menu-item-group>
                            <el-menu-item-group >
                                <el-menu-item index="1-3">选项3</el-menu-item>
                            </el-menu-item-group>
                        </el-submenu>
                    </el-menu>
                </el-aside>
<!--                侧边结束-->
<!--                内容开始-->
                <el-main>
                    <div class="content-right-top">
                        <p>{{opetions}}</p>
                    </div>
                    <div class="content-right-down">
                        <router-view></router-view>
                    </div>
                </el-main>
<!--                内容结束
-->
            </el-container>

2、在vue的index.js中配置相应的路由 :在管理员页面路由下创建children路由

import AdminHome from "../view/AdminHome";
import StaffHome from "../view/StaffHome";
import ManagerHome from "../view/ManagerHome";
import CreateUser from "../components/superadmin/CreateUser";

Vue.use(Router)
//new一个router,默认方式导出
export default new Router({
    //路由模式改成history,默认是hash
    mode: 'history',
    routes: [
        {
            path: '/',
            redirect: '/login'
        },
        {
            path: '/adminhome',
            name: '用户管理',
            component: AdminHome,
            children: [
                {
                    path: 'createuser',
                    component: CreateUser,
                    name: '创建用户'
                },
            ]
        },

   
    ]
})

3、创建select菜单激活回调函数,实现路由跳转

  methods: {
            //index 就是要跳转的路由
            menuClick(index){
                this.$router.push(index)
            },
}

总结:

 <el-menu @select="menuClick">
<!-- select是菜单激活回调-->
      <el-submenu index="1">
         <template slot="title"><i class="el-icon-message"></i>用户管理</template>
         <el-menu-item-group >
             <el-menu-item index="/adminhome/createuser">创建用户</el-menu-item>
         </el-menu-item-group>                      
       </el-submenu>
   </el-menu>


这是elementui中侧边导航
1、需要给el-menu 绑定select菜单激活回调函数
2、将el-menu-item标签中的index设置成前端路由
3、在内容区写上,将视图展示:<router-view/>
4、在路由上,导航路由都是在一个父组件中展示的,所以路由用children来写,不然会跳转到App.vue的<router-view/>中。
5、写menuClick函数的逻辑 menuClick(index){ this.$router.push(index)} 跳转到相应的路由

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
首先,你需要安装VueElementUI,可以通过以下命令进行安装: ```bash npm install vue element-ui --save ``` 然后在你的Vue项目中引入ElementUIVue Router,并创建一个顶部导航栏组件。这个组件将包含一个菜单和一个路由视图。 ```html <template> <div> <el-menu :default-active="$route.path" class="el-menu-demo" mode="horizontal" @select="handleSelect"> <el-menu-item index="/">首页</el-menu-item> <el-submenu index="/products"> <template slot="title">产品</template> <el-menu-item index="/products/list">产品列表</el-menu-item> <el-menu-item index="/products/add">添加产品</el-menu-item> </el-submenu> <el-submenu index="/orders"> <template slot="title">订单</template> <el-menu-item index="/orders/list">订单列表</el-menu-item> <el-menu-item index="/orders/add">添加订单</el-menu-item> </el-submenu> </el-menu> <router-view></router-view> </div> </template> <script> import { mapState } from 'vuex'; export default { computed: { ...mapState(['user']) }, methods: { handleSelect(key, keyPath) { this.$router.push(key); } } }; </script> <style scoped> .el-menu-demo { margin-bottom: 20px; } </style> ``` 在这个组件中,我们使用ElementUI的`el-menu`组件来创建菜单,并使用Vue Router的`$route.path`来设置默认选项。我们还使用Vue Router的`router-view`组件来显示当前路由的内容。 接下来,我们需要定义路由和组件。我们可以在Vue Router的配置中定义路由,如下所示: ```javascript import Vue from 'vue'; import Router from 'vue-router'; Vue.use(Router); const HomePage = () => import('@/views/HomePage.vue'); const ProductListPage = () => import('@/views/ProductListPage.vue'); const ProductAddPage = () => import('@/views/ProductAddPage.vue'); const OrderListPage = () => import('@/views/OrderListPage.vue'); const OrderAddPage = () => import('@/views/OrderAddPage.vue'); export default new Router({ mode: 'history', routes: [ { path: '/', component: HomePage }, { path: '/products/list', component: ProductListPage }, { path: '/products/add', component: ProductAddPage }, { path: '/orders/list', component: OrderListPage }, { path: '/orders/add', component: OrderAddPage } ] }); ``` 在这个配置中,我们定义了五个路由和对应的组件。我们还使用Vue Router的`mode: 'history'`来启用HTML5历史记录模式。 最后,我们需要在Vue项目中引入并使用Vue Router和顶部导航栏组件。我们可以在Vue实例中定义Vue Router,并在Vue模板中使用顶部导航栏组件,如下所示: ```javascript import Vue from 'vue'; import App from './App.vue'; import router from './router'; import store from './store'; Vue.config.productionTip = false; new Vue({ router, store, render: h => h(App) }).$mount('#app'); ``` ```html <template> <div id="app"> <top-nav /> </div> </template> <script> import TopNav from '@/components/TopNav.vue'; export default { components: { TopNav } }; </script> ``` 现在,你已经成功地使用VueElementUI创建了一个顶部导航栏,并实现了动态路由
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值