Vue配置路由和传参方式及路由守卫!

安装路由
npm i vue-router -S

引入路由
import VueRouter form VueRouter

注入路由模块
Vue.use(VueRouter)

定义路由匹配规则
let routes = [
{...},
{...}
]

上列匹配规则中 对象有如下属性
path : 路由路径
component : 所加载的组件
name : 别名
redirect : 重定向
children : 子级路由

创建路由实例
let router = new VueRouter({
routes : routes //routes属性值应该为上述路由匹配规则数组
})

将路由实例注入到初始化代码中

let app = new Vue({
data:...,
router : router
})

跳转:
标签跳转
<router-link to="" ></router-link>
该标签拥有属性
to : 目标路径 也可以是对象
tag: 指定该标签解析成实际的标签类型
activeClass: 指定选中时的class名

js跳转(编程式导航)
在组件内:
this.$router.push()
this.$router.replace()
this.$router.go() 前进或者后退 正前负退

路由传参
传统search传参(?号传参)
传送数据
标签传参
<router-link :to="{name:‘...‘,query:data}"></router-link>
编程传参
this.$router.push({
name : "...",
query : data
})
接收数据
this.$route.query

路径传参(动态路由)
路由配置:
{path:"/detail/:id",component:....}
传送数据:
<router-link :to="{name:‘...‘,params:data}">
编程传参:
this.$router.push({name:‘...‘,params:data})

接收参数
this.$route.params

路由守卫(导航守卫)
路由的钩子函数

三大类
全局
决定跳转前
router.beforeEach((to,from,next)=>{})
to代表目标路径对象
from代表来源路径对象
next() 是否继续 参数有三种
true或者不传 代表允许跳转
false 代表中止跳转
填入路径 会重定向到指定路径

决定跳转后但还没有跳转时 此时无法阻止路由跳转
router.afterEach((to,from)=>{})

路由独享
{path:"....",beforeEnter((to,from,next)=>{})}

组件守卫
进入当前组件前
beforeRouteEnter((to,from,next)=>{})
离开当前组件前
beforeRouteLeave((to,from,next)=>{})

路径没有变化但是参数变化时(多用于监听单纯的参数变化)
beforeRouteUpdate((to,from,next)=>{})

原文地址:https://www.cnblogs.com/lishixiang-007/p/11337392.html

时间: 2024-08-26 23:31:57

Vue配置路由和传参方式及路由守卫!的相关文章

前台VUE的组件之间传参方式

路由传参 """ 转跳: <router-link :to="'/course/'+course.id">{{course.name}}</router-link> 路由: { path: '/course/:course_id', name: 'detail', component: Detail } 获取: this.$route.params.course_id """ ""&

Vue组件之间的传参

Vue组件之间的传参方式有三种 第一:父传子 第二:子传父 第三:兄弟之间相传 第一,父传子,顾名思义,外层组件传参给嵌套内部的组件 在父代中嵌套的标签 <son v-bind:toSon="fatherData"></son> //发送数据给子代 在子代中接收数据 需要添加一个属性叫做prpos props:["toSon"], <!DOCTYPE html> <html lang="en"> &

Vue入门十三、路由的传参和取参

1.查询参login?id=12345 配置:(传参):to="{name:'login', query:{id:'loginid'}}"获取:(取参)this.$route.query.id 2.路由参数 配置:(传参):to="{name:'login', params:{id:'loginid'}}"获取:(取参)this.$route.params.id 3.路径参数register/registerid/info 配置:(传参):to="{nam

vue请求中 post get传参方式是不同的哦

我在学习vue,项目中post请求,get请求都用到了,我发现传参方式是不一样的. post请求的例子: checkin (){ this.$http.post('my url',{ mobilePhone:this.phone, password:this.password },{ emulateJSON: true } ).then(function(res){ this.$root.userid=res.data.userid; console.log(this.$root.userid)

vue-cli常用传参方式

文章内容:vue中父子组件传参.哒哒哒还没写完 一.父子组件 1.1父传子(props) <!-- 父组件father.vue --> <template> <div> <div>这里是father组件</div> <div>这是父组件要传给子组件的参数:{{msg}}</div> <!-- 1.传递:data1为动态参数msg的参数名,名字自定义,与子组件接收参数名同名 data2为静态参数的参数名,名字自定义,与

配置对象方法传参

我们见到的一般常规的函数传参是下面这样的: function fn ( a,b ) { console.log( a,b ); } //常规传参方式 fn( 1,2 ); //12 但是当函数需要很多个参数,而且参数的位置会影响到结果的时候常规的函数传参方式就显得捉襟见肘,例如 function fn ( a,b,c,d,e,f,g ){ console.log( a,b,c,d,e,f,g ); } 此时如果再使用原来那种传参方式出错的概率会大大增加 此时我们可以尝试 配置对象 传参,可以把上

Javaweb的七大传参方式和以及各自特点

学习jsp一段时间,觉得还是需要把自己学习一些东西整理了一下,第一次发东西,还请各位多多支持 1.表单提交 html自带的from方法,简单易懂,便于操作,依靠于<from>标签中的type="submit"进行表单传输,或者根据js进行控制提交表单.其中由method属性决定以post或者get方式进行提交. jsp代码: 1 <form id="test" action="testservlet" method="

java 传参方式--值传递还是引用传递

java 传参方式--值传递还是引用传递 参数是按值而不是按引用传递的说明 Java 应用程序有且仅有的一种参数传递机制,即按值传递.写它是为了揭穿普遍存在的一种神话,即认为 Java 应用程序按引用传递参数,以避免因依赖“按引用传递”这一行为而导致的常见编程错误. 对此节选的某些反馈意见认为,我把这一问题搞糊涂了,或者将它完全搞错了.许多不同意我的读者用 C++ 语言作为例子.因此,在此栏目中我将使用 C++ 和 Java 应用程序进一步阐明一些事实. 要点 读完所有的评论以后,问题终于明白了

Web API中的传参方式

在Restful风格的WebApi的里面,API服务的增删改查,分别对应着Http Method的Get / Post / Delete /Put,下面简单总结了Get / Post /Delete /Put的传参方式 一.Get传参 get设计成传输小数据,而且最好是不修改服务器的数据,所以浏览器一般都在地址栏里面可以看到,数据放在url的QueryString中. (一)简单类型 $(function () { $.ajax({ type: 'get', url:'http://localh