vue-router路由
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>
此时组件就会在父级组件显示
不管嵌套多少层都遵循此规则,多级嵌套的话可以使用一个模板
正常写法中,一层路径(/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路由的更多相关文章
- 前端MVC Vue2学习总结(八)——Vue Router路由、Vuex状态管理、Element-UI
一.Vue Router路由 二.Vuex状态管理 三.Element-UI Element-UI是饿了么前端团队推出的一款基于Vue.js 2.0 的桌面端UI框架,手机端有对应框架是 Mint U ...
- Vue系列:Vue Router 路由梳理
Vue Router 是 Vue.js 官方的路由管理器.它和 Vue.js 的核心深度集成,让构建单页面应用变得易如反掌.包含的功能有: 嵌套的路由/视图表 模块化的.基于组件的路由配置 路由参数. ...
- 04 Vue Router路由管理器
路由的基本概念与原理 Vue Router Vue Router (官网: https://router.vuejs.org/zh/)是Vue.js 官方的路由管理器. 它和vue.js的核心深度集成 ...
- Vue Router路由管理器介绍
参考博客:https://www.cnblogs.com/avon/p/5943008.html 安装介绍:Vue Router 版本说明 对于 TypeScript 用户来说,vue-router@ ...
- Vue Router 路由守卫:完整的导航解析流程
完整的导航解析流程 1 导航被触发. 2 在失活的组件里调用离开守卫. 3 调用全局的 beforeEach 守卫. 4 在重用的组件里调用 beforeRouteUpdate 守卫 (2.2+). ...
- Vue Router路由守卫妙用:异步获取数据成功后再进行路由跳转并传递数据,失败则不进行跳转
问题引入 试想这样一个业务场景: 在用户输入数据,点击提交按钮后,这时发起了ajax请求,如果请求成功, 则跳转到详情页面并展示详情数据,失败则不跳转到详情页面,只是在当前页面给出错误消息. 难点所在 ...
- Vue Router 路由实现原理
一.概念 通过改变 URL,在不重新请求页面的情况下,更新页面视图. 二.实现方式 更新视图但不重新请求页面,是前端路由原理的核心之一,目前在浏览器环境中这一功能的实现主要有2种方式: 1.Hash ...
- Vue - Router 路由
路由的注册 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF ...
- vue router路由(三)
当环境搭建及Vue语法与指令都有所了解,该说下router. build目录是打包配置文件 (不建议动) config是vue项目基本配置文件 dist是构建后文件 js 手动创建 (根据需要) no ...
- vue router路由跳转了,但是页面没有变(已解决)
小白学习 router.js:两个组件之间跳转 但是路由变了,页面没有改变的原因是因为app.vue里面没有router-view(很关键)
随机推荐
- windows 设置ipsec防火墙
windows server 推荐使用ipsec修改防火墙设置,默认防火墙需要手动导入导出.wfw文件,需要手动添加单条规则,维护麻烦,推荐关闭,使用ipsec管理 以下是线上防火墙配置,可参照业务环 ...
- HAOI(十二省联考)2019 qwq记
\(\large{Day\ -1}:\) 放假了,白天大概是抱着最后一次在机房的心态复习着板子过去的.看着机房里的各位神仙丝毫不慌的颓倒是有点慌了,敲了一下多项式的板子感觉写的相当自闭,感觉AFO应该 ...
- C#解决方案生成工具
实验环境 VS2017 C# .NET4.6 项目都是.net framework框架 目的: 用程序生成解决方案和项目. 思路:手动建一个方案和项目,分析其中的文件内容,做成模板后,由程序调用.最 ...
- ELK部署详解--kibana
kibana.yml # Kibana is served by a back end server. This setting specifies the port to use.#端口server ...
- luogu3250 网络 (整体二分+树上差分+树状数组)
首先整体二分,问题变成是否存在经过一个点的满足条件的路径 那么我对于每个路径(a,b,lca),在树状数组的dfn[a]++,dfn[b]++,dfn[lca]--,dfn[fa[lca]--] 然后 ...
- 【算法】php实现斐波那契数列
斐波那契数列指的是这样一个数列 1, 1, 2, 3, 5, 8, 13, 21.这个数列从第3项开始,每一项都等于前两项之和. 根据这个定义,斐波那契数列的递推公式是:f(n)=f(n-1)+f(n ...
- iptables防火墙详解(一)
-- 防火墙 常见的防火墙 :瑞星 江民 诺顿 卡巴斯基 天网...... iptables firewalld http://www.netfilter.org/ netfilter / iptab ...
- Gym - 100989L
After the data structures exam, students lined up in the cafeteria to have a drink and chat about ho ...
- springboot 后台运行
https://zhuanlan.zhihu.com/p/25102504?refer=dreawer 酱油一篇,整理一下关于Spring Boot后台运行的一些配置方式.在介绍后台运行配置之前,我们 ...
- AVL平衡二叉树
AVL树 1.若它的左子树不为空,则左子树上所有的节点值都小于它的根节点值. 2.若它的右子树不为空,则右子树上所有的节点值均大于它的根节点值. 3.它的左右子树也分别可以充当为二叉查找树. 例如: ...