Vue中router路由的使用、router-link的使用(在项目中的实际运用方式)

简介: 这篇文章介绍了Vue中router路由和router-link的使用方式,包括router配置、router-link在模板中的使用,以及实现的导航菜单和页面路由效果。

文章目录

    • 1、先看router中的index.js文件
    • 2、router-link的使用
    • 3、实现的效果

前提:router已经安装

1、先看router中的index.js文件

import Vue from 'vue'
import Router from 'vue-router'
// import HelloWorld from '@/components/HelloWorld'
import Register from '../views/main/Register'
import Login from '@/views/main/Login'
import Home from '@/views/main/Home'
import HomePage from '@/views/end/HomePage'
import AdminInfo from '@/views/end/AdminInfo'
import UserInfo from '@/views/end/UserInfo'

Vue.use(Router)

export default new Router({
  routes: [
    {
      path: '/',
      name: '注册页',
      component: Register
    },
    {
      path:'/login',
      name:'登录页',
      component: Login
    },
    //菜单栏设置
    {
      path:'/Home',
      name: "主界面",
      component: Home,
      redirect: '/HomePage',
      children: [
        {
          path: '/HomePage',
          name: '后台首页',
          component: HomePage
        },
        {
          path:'/AdminInfo',
          name: '管理员信息界面',
          component: AdminInfo
        },{
          path:'/UserInfo',
          name: "用户信息界面",
          component: UserInfo
        }
      ]

    },


  ]
})

2、router-link的使用

<template>
  <div>
    <el-container class="home_container" style="height: 800px">
      <el-header>
        <div>
          <span class="header-left">服装库存管理后台系统</span>
        </div>
        <div class="header-right" style="margin-right: -70%">
          <div class="header-right-left" style="float: left">
            <span>当前登录用户</span>:
          </div>

          <div class="header-right-rigth" style="float: right">
            <span>退出登录</span>
          </div>
        </div>
        <div></div>
      </el-header>

      <el-container>
        <el-aside width="150px">
          <el-menu :default-openeds="['1', '3']">
            <el-submenu index="1">
              <template slot="title"
                ><i class="el-icon-s-home"></i>首页信息</template
              >
              <el-menu-item index="1-1">
                <router-link to="/HomePage" style="color: black; text-decoration: none;" >首页信息</router-link>
              </el-menu-item>
            </el-submenu>
            <el-submenu index="2">
              <template slot="title"><i class="el-icon-menu"></i>信息展示</template>
              <el-menu-item index="2-1">
                <router-link to="/AdminInfo" style="color: black; text-decoration: none;">管理员信息</router-link>
              </el-menu-item>
              <el-menu-item index="2-2">
                <router-link to="/UserInfo" style="color: black; text-decoration: none;">用户信息</router-link>
              </el-menu-item>
              <el-menu-item index="2-3">商品类别</el-menu-item>
              <el-menu-item index="2-4">商品详情</el-menu-item>

            </el-submenu>
            <el-submenu index="3">
              <template slot="title"
                ><i class="el-icon-setting"></i>库存管理</template
              >

              <el-menu-item index="3-1">货号信息</el-menu-item>
              <el-menu-item index="3-2">入库信息</el-menu-item>
              <el-menu-item index="3-3">入库详情</el-menu-item>

              <el-menu-item index="3-4">出库信息</el-menu-item>
              <el-menu-item index="3-4">出库详情</el-menu-item>
            </el-submenu>

            <el-submenu index="4">
              <template slot="title"
                ><i class="el-icon-unlock"></i>辅助管理</template
              >

              <el-menu-item index="3-1"
                ><span><i class="el-icon-unlock"></i></span>
                修改密码</el-menu-item
              >
            </el-submenu>
          </el-menu>
        </el-aside>

        <el-main>
          <router-view></router-view>
        </el-main>
      </el-container>
    </el-container>
  </div>
</template>

<script>
export default {
  data() {
    return {
      menuList: [],
      isCollapse: false,
    };
  },
  methods: {},

  computed: {},
};
</script>

<style scoped>
/* 去除router-link的下划线 */
/* .router-link-active {
  text-decoration: none;
} */
 @import "../../assets/css/base.css";

</style>

3、实现的效果

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

相关文章
|
5天前
|
JavaScript 前端开发
如何在 Vue 项目中配置 Tree Shaking?
通过以上针对 Webpack 或 Rollup 的配置方法,就可以在 Vue 项目中有效地启用 Tree Shaking,从而优化项目的打包体积,提高项目的性能和加载速度。在实际配置过程中,需要根据项目的具体情况和需求,对配置进行适当的调整和优化。
|
5天前
|
存储 缓存 JavaScript
如何在大型 Vue 应用中有效地管理计算属性和侦听器
在大型 Vue 应用中,合理管理计算属性和侦听器是优化性能和维护性的关键。本文介绍了如何通过模块化、状态管理和避免冗余计算等方法,有效提升应用的响应性和可维护性。
|
4天前
|
JavaScript 前端开发 UED
vue学习第二章
欢迎来到我的博客!我是一名自学了2年半前端的大一学生,熟悉JavaScript与Vue,目前正在向全栈方向发展。如果你从我的博客中有所收获,欢迎关注我,我将持续更新更多优质文章。你的支持是我最大的动力!🎉🎉🎉
|
4天前
|
JavaScript 前端开发 开发者
vue学习第一章
欢迎来到我的博客!我是瑞雨溪,一名热爱JavaScript和Vue的大一学生。自学前端2年半,熟悉JavaScript与Vue,正向全栈方向发展。博客内容涵盖Vue基础、列表展示及计数器案例等,希望能对你有所帮助。关注我,持续更新中!🎉🎉🎉
|
5天前
|
存储 缓存 JavaScript
在 Vue 中使用 computed 和 watch 时,性能问题探讨
本文探讨了在 Vue.js 中使用 computed 计算属性和 watch 监听器时可能遇到的性能问题,并提供了优化建议,帮助开发者提高应用性能。
|
5天前
|
存储 缓存 JavaScript
Vue 中 computed 和 watch 的差异
Vue 中的 `computed` 和 `watch` 都用于处理数据变化,但使用场景不同。`computed` 用于计算属性,依赖于其他数据自动更新;`watch` 用于监听数据变化,执行异步或复杂操作。
|
6天前
|
存储 JavaScript 开发者
Vue 组件间通信的最佳实践
本文总结了 Vue.js 中组件间通信的多种方法,包括 props、事件、Vuex 状态管理等,帮助开发者选择最适合项目需求的通信方式,提高开发效率和代码可维护性。
|
6天前
|
存储 JavaScript
Vue 组件间如何通信
Vue组件间通信是指在Vue应用中,不同组件之间传递数据和事件的方法。常用的方式有:props、自定义事件、$emit、$attrs、$refs、provide/inject、Vuex等。掌握这些方法可以实现父子组件、兄弟组件及跨级组件间的高效通信。
|
11天前
|
JavaScript
Vue基础知识总结 4:vue组件化开发
Vue基础知识总结 4:vue组件化开发