Vue路由

server/2024/12/22 12:22:03/

一.路由需求背景 

当我们想要实现点击部门管理就展示部门管理的页面,点击员工管理就展示员工管理的页面这一效果时,我们就要使用Vue路由。前端路由就是URL中的hash值与组件之间的对应关系,因此要为不同的组件设定不同的hash值。

二.Vue路由

Vue路由有三方面组成。首先VueRouter时路由器类,在其中接收路由链接组件的请求,请求中是一个组件对应的hash值,并且通过路由表找到表中该hash值对应的组件,然后将该组件渲染出来,通过路由展示组件在页面上展示。 

三.实现

首先在vue项目中的router文件夹中的index.js文件中配置路由器信息。在const routes中设置。emp组件的path为/emp(hash),而dept组件的path为/dept(hash)。并在component中将组件与其对应。

import Vue from 'vue'
import VueRouter from 'vue-router'
/* import HomeView from '../views/HomeView.vue'*/
Vue.use(VueRouter)const routes = [{path: '/emp',name: 'emp',component: () => import('../views/tlias/EmpView.vue')},{path: '/dept',name: 'dept',component: () => import('../views/tlias/DeptView.vue')},{path: '/',redirect: '/dept'}
]const router = new VueRouter({routes
})export default router

我们需要配置不同组件的不同hash值,在对应组件中使用<router-link>为其配置,

<el-menu-item index="1-1"><router-link to="/dept">部门管理</router-link>
</el-menu-item>
<el-menu-item index="1-2"><router-link to="/emp">员工管理</router-link>
</el-menu-item>

之后在App.vue中的<template>区域使用<router-view>标签进行展示。 

<!-- 模板部分,由他生成HTML代码  相当于vue当中的视图部分 -->
<template><div>   <!-- div是根标签,一个<template>标签中只能有一个根标签,也即只能有一个<template>标签 --><!-- <h1>{{ message }}</h1> --><!-- <element-view></element-view> --><!-- <emp-view></emp-view> --><router-view></router-view></div>
</template><!-- JS代码,定义vue当中的数据模型以及当中的方法 -->
<script>
/* 
import ElementView from './views/element/ElementView.vue'  将ElementView.vue组件文件导入并重新命名为ElementView  注意:<template>标签里面没有定义标签,那么import的话会报错
*/
/*   import EmpView from './views/tlias/EmpView.vue' */export default {components: { /* EmpView */ },   // components里面也不能有<template>中未定义的标签的vue组件data () {return {/* message:"Hello Vue"     */}},methods: {}}
</script><!-- 定义CSS样式 -->
<style></style>

 

这样我们的路由信息就配置好了。但是有一个bug需要解决。当我们配置好路由信息后,重启项目,再次访问,会发现什么也不显示,这是因为当项目启动起来时默认访问的路由的路径是"/"而非“/dept”和"/emp",但是在配置路由时并没有配置“/”的路由,因此要再新配置一个“/"的路由信息。 

import Vue from 'vue'
import VueRouter from 'vue-router'
/* import HomeView from '../views/HomeView.vue'*/
Vue.use(VueRouter)const routes = [{path: '/emp',name: 'emp',component: () => import('../views/tlias/EmpView.vue')},{path: '/dept',name: 'dept',component: () => import('../views/tlias/DeptView.vue')},{path: '/',redirect: '/dept'}
]const router = new VueRouter({routes
})export default router

我们指定path为"/",也让它访问默认的一个页面也就是"/dept",我们可以使用一个属性redirect,代表重定向,即当访问"/"时让他转而访问另一个路径"/dept",这样问题解决。


http://www.ppmy.cn/server/105310.html

相关文章

~/.bashrc 应用

随笔记录 目录 1.背景介绍 2. 举例说明 2.1 设置开机配置项&#xff0c;避免频繁配置 2.2 频繁访问某个路径 1.背景介绍 频繁ssh 远程登录服务器后&#xff0c;近期频繁多次进入某个指定路径&#xff0c;为减少重复操作&#xff0c;添加到 ~/.bashrc 文件中 2. 举例说明…

微信小程序引入全局环境变量

有时候一套代码要在多个小程序appId下使用,其中又有一些数据(文字)需要做区分.可以使用下面的方法 把要配置的数据以export default 形式导出 在app.js中,引入project.config.0.js文件,将导出的数据放在globalData中 在页面目录中,即可利用getApp()方法使用全局变量 也可以放数…

开发指南055-根据内容选择样式

平台除了提供各种组件、接口外&#xff0c;更重要的是规定解决方式&#xff0c;就是什么场景用什么解决方案。解决同一个问题有很多种方案&#xff0c;平台开发方会综合各种解决方案的优缺点然后强制选择一种模式。选择同一种模式的好处就是容易维护&#xff0c;因为大家都是同…

web后端(javaEE)开发——servlet

目录 一、web后端开发概述 二、web后端开发环境搭建 1.安装服务器软件 2.安装JDK 三、创建web后端项目 1.创建项目 2.修改设置 3.*在IDEA中集成Tomcat* 四、Servlet创建和应用 1.概述 2.Servlet程序创建与配置 3.分析Servlet程序结构 一、web后端开发概述 web开发&a…

依赖包更新了但是没有release,如何安装更新的依赖包

问题描述:有一个python仓库mmrotate,仓库更新了support training mmrotate on NPU (#806)这个commit, 但是pip没有release,怎么安装这个新的commit? 解决: 要安装未发布的commit&#xff0c;可以通过从Python仓库直接安装特定commit的版本。以下是安装mmrotate仓库中支持在NP…

「Python数据分析」Pandas基础,筛选数据利器:布尔索引

我们在处理数据的时候&#xff0c;数据筛选是一个重要的过程。利用布尔索引&#xff0c;我们可以选择需要的数据区间。布尔索引&#xff0c;是利用各种不等式&#xff0c;以及与或非操作&#xff0c;来对数据区间进行选择。 在pandas中&#xff0c;与操作&#xff0c;对应的是…

俄罗斯OZON秋天什么产品好卖

Top1 按摩器 BOGGE премиум массажер для шеи и плеч спины для ног многофункциональный массажер для тела электрический с подогревом. 商品id&#xff1a;1379499497…

MySQL系列—MySQL编译安装常见问题(或缺少依赖)及解决方法,MySQL 编译安装时需要安装的依赖(全)

MySQL系列—MySQL编译安装常见问题(或缺少依赖)及解决方法 MySQL 编译安装时需要安装的依赖(全)&#xff1a; yum install -y cmake yum install ncurses ncurses-devel -y yum install -y libarchive yum install -y gcc gcc-c yum install -y openssl openssl-devel yum inst…