Vue Router 是 Vue.js 官方的路由管理器

自动全局安装:

vue create 项目名称

手动配置:

1、安装

在app项目文件夹里面

npm i vue-router

2、在min.js下引入包

import Vue from 'vue'
import App from './App.vue'
import VueRouter from 'vue-router';

3、使用use来引用(使用)

Vue.use(VueRouter);

4、需要配置router -> route.js

引入组件,配置路由表
配置路由表(当前是哪个路径需要执行哪个组件)

const routes = [
//配置什么路径就走哪个组件
{
path:'/', //根路径
component:app //app就是根
},
{
path: '/foo',//路径
component: Foo//组件
},
{
path: '/bar',
component: Bar
}
];
export default new VueRouter({
router:routes
//等同于
//router
})

在new vue-router时候,通过routes来引配置数

new Vue时候是通过router来引路由

5、放到跟下

 new Vue({
el:'#app',
render:()=>h,
router
})

6、渲染,在页面中定义router-view 标签

<router-link></router-link>
//有children时候,父组件必须有router-view
<router-view></router-view>
//路由匹配到的组件将渲染在这里
<router-link>//默认会渲染成一个a标签
<router-link tag="button">
//这样可以加一个按钮的样式

<router-link>

to属性

表示目标路由的链接

通过 to 属性指定目标地址
默认渲染成带有正确链接的 <a> 标签

/*字符串*/
<router-link to="home">home</router-link> /*v-bind 的 JS 表达式 */
如果是:to,路径要写成字符串 比如<router-link :to="'home'">Home</router-link> :to 可以是字符串也可以是对象 /*命名的路由 params*/
<router-link :to="{ name: 'user', params: { userId: 123 }}">User</router-link> /*带查询参数,下面的结果为 /register?plan=private*/
<router-link :to="{ path: 'register', query: { plan: 'private' }}">Register</router-link>
:to="{path:'a'}"
:to="{params:{a:5}}"

注意:如果使用params,那么就不能定义path,改为使用name

tag属性

具有tag属性的router-link会被渲染成相应的标签

//比如生成一个按钮
<router-link tag ="button"></router-link>

replace属性

replace在routre-link标签中添加后,页面切换时不会留下历史记录

<router-link :to="/home" replace></router-link>

active-class属性

默认值 "router-link-active"

设置 链接激活时使用的 CSS 类名

<router-link :to="/home" active-class="u-link--Active">Home</router-link>

可以在router.js文件中设置

const router = new VueRouter({
mode: 'hash',
linkActiveClass: 'u-link--Active', // 这是链接激活时的class
})

 exact属性

开启router-link的严格模式,默认值 false

//这个链接只会在地址为 / 的时候被激活
<router-link :to="/" exact>home</router-link>

exact-active-class属性

默认值 router-link-exact-active

配置当链接被精确匹配的时候应该激活的 class

激活class 应用在外层元素

让激活 class 应用在外层元素,而不是 <a> 标签本身,可以用 <router-link> 渲染外层元素,包裹着内层的原生 <a> 标签

<router-link tag="li" to="/foo">
<a>/foo</a>
</router-link>

路由嵌套

路由嵌套就是有多层路由嵌套在一起,也就是子路由

栗子:

APP.vue文件

<template>
<div id="app">
<router-link to="/" tag="button">home</router-link>
<router-link to="/About" tag="button">about</router-link>
<router-view></router-view>
</div>
</template>
<script>
</script>
<style>
.actived{
background:orange;
}
</style>

About.vue文件

(里面包含sub1、sub2、sub3三个子路由页面)

<template>
<div class="about">
<h1>This is an about page</h1>
<router-link to="/about/sub1" tag="button">sub1</router-link>
<router-link to="/about/sub2" tag="button">sub2</router-link>
<router-link to="/about/sub3" tag="button">sub3</router-link>
<router-view></router-view>
</div>
</template>
<script>
export default {
name:'about'
}
</script>

router.js路由文件

 import Vue from 'vue';
import VueRouter from 'vue-router';
import Home from '../views/Home.vue'
import About from '../views/About.vue'
import Sub1 from '../views/sub/sub1.vue'
import Sub2 from '../views/sub/sub2.vue'
import Sub3 from '../views/sub/sub3.vue'
Vue.use(VueRouter); const routes = [
{
path:'/',
component:Home
},
{
path:'/About',
component:About,
children:[
{
path:'sub1',
component:Sub1
},
{
path:'sub2',
component:Sub2
},
{
path:'sub3',
component:Sub3
}
] }
] export default new VueRouter({
linkExactActiveClass:'actived',//精确匹配选中的样式
routes
});

在路由上挂一个children属性,children为一个数组

子路由路径不用加/

对于<router-view></router-view>的用法

如果有子级路由,那么记得在父级身上加<router-view></router-view>

此时组件就会在父级组件显示

不管嵌套多少层都遵循此规则,多级嵌套的话可以使用一个模板

正常写法中,一层路径(/xxx)对应一个router-view

比如url: /a/b/c

/a对应的就是App.vue中的router-view,/a进入a.vue

/a/b对应的就是a.vue中的router-view, /a/b进入b.vue

vue-router路由的更多相关文章

  1. 前端MVC Vue2学习总结(八)——Vue Router路由、Vuex状态管理、Element-UI

    一.Vue Router路由 二.Vuex状态管理 三.Element-UI Element-UI是饿了么前端团队推出的一款基于Vue.js 2.0 的桌面端UI框架,手机端有对应框架是 Mint U ...

  2. Vue系列:Vue Router 路由梳理

    Vue Router 是 Vue.js 官方的路由管理器.它和 Vue.js 的核心深度集成,让构建单页面应用变得易如反掌.包含的功能有: 嵌套的路由/视图表 模块化的.基于组件的路由配置 路由参数. ...

  3. 04 Vue Router路由管理器

    路由的基本概念与原理 Vue Router Vue Router (官网: https://router.vuejs.org/zh/)是Vue.js 官方的路由管理器. 它和vue.js的核心深度集成 ...

  4. Vue Router路由管理器介绍

    参考博客:https://www.cnblogs.com/avon/p/5943008.html 安装介绍:Vue Router 版本说明 对于 TypeScript 用户来说,vue-router@ ...

  5. Vue Router 路由守卫:完整的导航解析流程

    完整的导航解析流程 1 导航被触发. 2 在失活的组件里调用离开守卫. 3 调用全局的 beforeEach 守卫. 4 在重用的组件里调用 beforeRouteUpdate 守卫 (2.2+). ...

  6. Vue Router路由守卫妙用:异步获取数据成功后再进行路由跳转并传递数据,失败则不进行跳转

    问题引入 试想这样一个业务场景: 在用户输入数据,点击提交按钮后,这时发起了ajax请求,如果请求成功, 则跳转到详情页面并展示详情数据,失败则不跳转到详情页面,只是在当前页面给出错误消息. 难点所在 ...

  7. Vue Router 路由实现原理

    一.概念 通过改变 URL,在不重新请求页面的情况下,更新页面视图. 二.实现方式 更新视图但不重新请求页面,是前端路由原理的核心之一,目前在浏览器环境中这一功能的实现主要有2种方式: 1.Hash  ...

  8. Vue - Router 路由

    路由的注册 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF ...

  9. vue router路由(三)

    当环境搭建及Vue语法与指令都有所了解,该说下router. build目录是打包配置文件 (不建议动) config是vue项目基本配置文件 dist是构建后文件 js 手动创建 (根据需要) no ...

  10. vue router路由跳转了,但是页面没有变(已解决)

    小白学习 router.js:两个组件之间跳转 但是路由变了,页面没有改变的原因是因为app.vue里面没有router-view(很关键)

随机推荐

  1. windows 设置ipsec防火墙

    windows server 推荐使用ipsec修改防火墙设置,默认防火墙需要手动导入导出.wfw文件,需要手动添加单条规则,维护麻烦,推荐关闭,使用ipsec管理 以下是线上防火墙配置,可参照业务环 ...

  2. HAOI(十二省联考)2019 qwq记

    \(\large{Day\ -1}:\) 放假了,白天大概是抱着最后一次在机房的心态复习着板子过去的.看着机房里的各位神仙丝毫不慌的颓倒是有点慌了,敲了一下多项式的板子感觉写的相当自闭,感觉AFO应该 ...

  3. C#解决方案生成工具

    实验环境  VS2017 C# .NET4.6 项目都是.net framework框架 目的: 用程序生成解决方案和项目. 思路:手动建一个方案和项目,分析其中的文件内容,做成模板后,由程序调用.最 ...

  4. ELK部署详解--kibana

    kibana.yml # Kibana is served by a back end server. This setting specifies the port to use.#端口server ...

  5. luogu3250 网络 (整体二分+树上差分+树状数组)

    首先整体二分,问题变成是否存在经过一个点的满足条件的路径 那么我对于每个路径(a,b,lca),在树状数组的dfn[a]++,dfn[b]++,dfn[lca]--,dfn[fa[lca]--] 然后 ...

  6. 【算法】php实现斐波那契数列

    斐波那契数列指的是这样一个数列 1, 1, 2, 3, 5, 8, 13, 21.这个数列从第3项开始,每一项都等于前两项之和. 根据这个定义,斐波那契数列的递推公式是:f(n)=f(n-1)+f(n ...

  7. iptables防火墙详解(一)

    -- 防火墙 常见的防火墙 :瑞星 江民 诺顿 卡巴斯基 天网...... iptables firewalld http://www.netfilter.org/ netfilter / iptab ...

  8. Gym - 100989L

    After the data structures exam, students lined up in the cafeteria to have a drink and chat about ho ...

  9. springboot 后台运行

    https://zhuanlan.zhihu.com/p/25102504?refer=dreawer 酱油一篇,整理一下关于Spring Boot后台运行的一些配置方式.在介绍后台运行配置之前,我们 ...

  10. AVL平衡二叉树

    AVL树 1.若它的左子树不为空,则左子树上所有的节点值都小于它的根节点值. 2.若它的右子树不为空,则右子树上所有的节点值均大于它的根节点值. 3.它的左右子树也分别可以充当为二叉查找树. 例如: ...