每天一点点之vue框架开发 - vue-router路由进阶(路由别名、跳转、默认路由、二级路由、路由守卫)
const routes = [
{path:'/footer',name:footerLink,component:Footer}
]
在组件中的路由中通过对象属性来实现路由
<router-link :to="{name:homeLink}">Mirror微申</router-link>
this.$router.go(-1)
this.$router.replace(‘/footer’)
// 还可以通过别名跳转
this.$router.replace({name:’footerLink’})
this.$router.push(‘/footer’)
this.$router.push({name:’footerLink’})
const routes = [
{path:'/',redirect:'/home'},
{path:'/home',name:homeLink,component:Home},
]
或者在路由中添加
const routes = [
{path:'*',redirect:'/'},
]
这样写有两个好处,一个是设置了默认访问路由,还有一个就是当用户在地址栏输入错误的时候跳转到首页
import Home from '../../components/home/Home';
import Footer from "../../components/footer/Footer"; export const routes = [
{ path: '/', name: 'homeLink', component: Home },
{ path: '/footer', name: 'footerLink', component: Footer },
{ path: '*', redirect: '/' },
]
说明,使用 export 将数组暴露出去,import引入组件
2.在main.js 中引入路由文件
import { routes } from './assets/js/routes.js'
路由守卫
1.全局守卫
// 全局守卫
router.beforeEach((to,from,next)=>{
if(to.path == '/login' || to.path == '/register'){
next();
}else{
alert("你还没有登录,请先登陆");
next('/login');
}
})
参数说明:
to:去那
from:到哪里
next:跳转到哪里,回调函数
2.后置钩子
在路由之后出发,其实和全局守卫差不多
router.afterEach((to,from) => {
alert("后置钩子");
})
3.独享守卫
就是在路由中添加 beforeEnter ,访问其他链接的时候,不会提示,只有在访问特定路由的时候才会触发
{ path: '/blogging', name: 'bloggingLink', component: Blogging ,beforeEnter: (to, from, next) => {
if(to.path == '/login' || to.path == '/register'){
next();
}else{
alert("你还没有登录,请先登陆");
next('/login');
}
}},
4.组件内守卫
就是在组件内进行守卫,不能和路由守卫同用
export default {
data(){
return {
name:'Victor'
}
},
// 组件进入
beforeRouteEnter (to, from, next) {
next(vm => {
alert('Hello ' + this.name)
})
},
// 组件离开
beforeRouteLeave (to, from, next) {
if(confirm('确认离开吗?') == true) {
next();
}else{
next(false);
}
}
}
说明:在 beforeRouteEnter 中如果想访问data,需要在回调中访问
每天一点点之vue框架开发 - vue-router路由进阶(路由别名、跳转、默认路由、二级路由、路由守卫)的更多相关文章
- 每天一点点之vue框架开发 - vue坑-This relative module was not found
94% asset optimization ERROR Failed to compile with 1 errors This relative module was not found: * . ...
- 每天一点点之vue框架开发 - vue坑-input 的checked渲染问题
选中radio或者checkbox需要注意的是: 不管<input type='radio checked='true''> 你的checked属性值是true或者false,他都会选中 ...
- 每天一点点之vue框架开发 - vue组件之间传值(父向子传值)
路由文件 { path: '/productListBase', name: 'productListLink', component: ProductListBase, redirect: '/pr ...
- 每天一点点之vue框架开发 - vue 动态替换路由(地址栏)参数
import merge from 'webpack-merge': // 修改原有参数 this.$router.push({ query:merge(this.$route.query,{'max ...
- 每天一点点之vue框架开发 - vue中使用vue-router切换页面时自动滚动到顶部的方法
1. 在main.js入口文件中写入 //路由跳转后,页面回到顶部 router.afterEach(() => { document.body.scrollTop = 0; document. ...
- 每天一点点之vue框架开发 - 引入Jquery
1. 安装jquery npm install jquery --save-dev 2.在build/webpack.base.conf.js中添加如下内容 var webpack = require ...
- 每天一点点之vue框架开发 - 使用vue-router路由
1.安装路由(安装过的跳过此步) // 进入项目根目录 cd frontend // 安装 npm install vue-router --save-dev 2.在入口文件main.js中引入路由 ...
- 每天一点点之vue框架开发 - 如何在一个页面调用另一个同级页面的方法
使用场景: 页面分为header.home.footer三部分,需要在home中调用header中的方法,这两个没有相互引入 官方给出方法: api传送门 在项目中实现: 1.首先同一个vue实例来调 ...
- 每天一点点之vue框架开发 - vue-router路由在循环中携带参数
场景:要实现一个标签云,通过循环把标签渲染,然后单击标签的时候实现跳转,跳转路由一样,通过唯一参数来实现请求不同的数据 因此,就需要在for循环中来携带参数,本节所讲的是路由使用对象的形式(别名)来实 ...
- 每天一点点之vue框架开发 - History 模式下线上路由报404错误
vue-router 默认 hash 模式 —— 使用 URL 的 hash 来模拟一个完整的 URL,于是当 URL 改变时,页面不会重新加载. 如果不想要很丑的 hash,我们可以用路由的 his ...
随机推荐
- pytorch 调整tensor的维度位置
target.permute([0, 3, 1, 2]) 一定要使用permute以及中括号 一些在我这里没起到作用的网上的例子: 1. https://blog.csdn.net/zouxiaolv ...
- 嵌入式 printf的实现
在嵌入式中,经常需要用到printf来调试程序 标准库函数的默认输出设备是显示器,要实现在串口或LCD输出,必须重定义标准库函数里调用的与输出设备相关的函数. printf输出到串口,需要将fputc ...
- JS中的鼠标移入移除监控操作
有些时候我们需要通过页面来监控用户的行为,包括鼠标操作键盘操作,本文章介绍的是鼠标的操作监控: <script> window.onload = function(){ var oDiv ...
- 解决vmware 桥联 再次使用联不上网的问题
在vmare里 编辑 虚拟网络配置 桥联 自动设置 改为你正在联网的网卡 这个问题针对有线网卡 和无限网卡使用的问题
- 手把手教你如何在Presentation中拿高分
掐指一算,留学生们最近应该马上遇到Presentation作业.一般来说,这类的任务会占最终成绩的20-30%,对于期末成绩有一定的影响,如果想拿高分,就需要好好的准备.所以本文算是系列里的第一篇(扫 ...
- Typora: Markdown Reference (Typora下Markdown语法使用说明)
引言 由于一直在使用Typora,这个是我使用过的最棒的Markdown编辑器,但是总是忽略某一个功能,于是决定认真看一下其帮助文档 这里做一个简单主要功能的中文翻译(按键对应Windows下). 标 ...
- 5G/NR 频带详解
原文链接:http://www.sharetechnote.com/html/5G/5G_FR_Bandwidth.html 在NR中,3GPP中规定了大约两个大的频率范围.一个是我们通常所说的(su ...
- 5G时代能携号转网,你会提前换新手机吗?
每一次网络制式的变革,总能引发业界和大众的强烈关注.毕竟网络制式的迭代,能为社会的方方面面带来极大嬗变.而5G时代即将开启,必然会出现更多弄潮儿,也会带来让人心动的美好生活.不过,鉴于5G本身的特殊性 ...
- 【LeetCode】加油站
[问题]在一条环路上有 N 个加油站,其中第 i 个加油站有汽油 gas[i] 升. 你有一辆油箱容量无限的的汽车,从第 i 个加油站开往第 i+1 个加油站需要消耗汽油 cost[i] 升.你从其中 ...
- Spring Boot-运行部署
Main方法 直接运行启动类main方法 遵循应用程序入口点的Java约定的标准方法.我们的main方法SpringApplication通过调用委托给Spring Boot的类run. Spring ...