vue 路由四种方式 (带参数)跳转

vue 路由四种方式 (带参数)跳转,第1张

replace和push区别:

routerpush(location) 会向 history 栈添加一个新的记录,当用户点击浏览器后退按钮时,则回到之前的 URL。

routerreplace(location) ,replace 属性(默认值: false),它不会向 history 添加新记录,而是跟它的方法名一样 —— 替换掉当前的 history 记录。

注意:获取路由上面的参数,用的是$route,后面没有r

params是路由的一部分,必须要有。query是拼接在url后面的参数,没有也没关系。

params一旦设置在路由,params就是路由的一部分,如果这个路由有params传参,但是在跳转的时候没有传这个参数,会导致跳转失败或者页面会没有内容。

params、query不设置也可以传参,但是params不设置的时候,刷新页面或者返回参数会丢失。

两者都可以传递参数,区别是什么?

query 传参配置的是path,而params传参配置的是name,在params中配置path无效

query在路由配置不需要设置参数,而params必须设置

query传递的参数会显示在地址栏中

params传参刷新会无效,但是query会保存传递过来的值,刷新不变

     search和hash的区别,如果URL中“?”之前有一个“#”比如:“>

this$routergo(n)

向前或者向后跳转n个页面,n可为正整数或负整数

ps : 区别

this$routerpush

跳转到指定url路径,并想history栈中添加一个记录,点击后退会返回到上一个页面

this$routerreplace

跳转到指定url路径,但是history栈中不会有记录,点击返回会跳转到上上个页面 (就是直接替换了当前页面)

this$routergo(n)

向前或者向后跳转n个页面,n可为正整数或负整数

完整url可以用 windowlocationhref

路由路径可以用 this$routepath

路由路径参数 this$routeparams 例如:/user/:id → /user/2044011030 → this$routeparamsid

路由查询参数 this$routequery 例如:/user/searchname=sf → this$routequeryname

参考: >

可以的。this$routename 就可以获取到对应的name了

主要有以下几个步骤:

(1) 设置好路由配置

routermap({

'/history/:deviceId/:dataId': {

name: 'history', // give the route a name

component: { }

}

})

这里有2个关键点:

a)给该路由命名,也就是上文中的 name: 'history',

b)在路径中要使用在路径中使用冒号开头的数字来接受参数,也就是上文中的 :deviceId, :dataId;

(2)在v-link中传递参数;

<a v-link="{ name: 'history', params: { deviceId: 123, dataId:456 }}">history</a>

这里的123,456都可以改用变量。

比如该template所对应的组件有2个变量定义如下:

data: function() {

return {

deviceId:123,

dataId:456

}

}

此时上面那个v-link可以改写为:

<a v-link="{ name: 'history', params: { deviceId: deviceId, dataId: dataId }}">history</a>

(3)在router的目标组件上获取入参

比如在router目标组件的ready函数中可以这么使用。

ready: function(){

consolelog('deviceid: ' + this$routeparamsdeviceId);

consolelog('dataId: ' + this$routeparamsdataId);

}

项目中很多情况下都需要进行路由之间的传值,想过很多种方式

sessionstorage/localstorage/cookie 进行离线缓存存储也可以,用vuex也可以,不过有些大材小用吧,不管怎么说因场景而异

下面我来说下vue自带的路由传参的三种基本方式

先有如下场景 点击当前页的某个按钮跳转到另外一个页面去,并将某个值带过去

第一种方法 页面刷新数据不会丢失

需要对应路由配置如下:

可以看出需要在path中添加/:id来对应 $routerpush 中path携带的参数。在子组件中可以使用来获取传递的参数值

另外页面获取参数如下

第二种方法 页面刷新数据会丢失

通过路由属性中的name来确定匹配的路由,通过params来传递参数。

对应路由配置: 注意这里不能使用:/id来传递参数了,因为组件中,已经使用params来携带参数了。

子组件中: 这样来获取参数

第三种方法

使用path来匹配路由,然后通过query来传递参数

这种情况下 query传递的参数会显示在url后面id=?

对应路由配置:

对应子组件: 这样来获取参数

特别注意哦,

组件中 获取参数的时候是 router 这很重要~~~

用window locationhref路由路径参数thisrouteparams查看。

这种方式就需要通过javascript获取并提取url中的参数进行查看。

统一资源定位符(Uniform Resource Locator URL)是对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址。

以上就是关于vue 路由四种方式 (带参数)跳转全部的内容,包括:vue 路由四种方式 (带参数)跳转、获取url 号后面的参数的几种方式、详解vue 路由跳转四种方式 (带参数)等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/9454338.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存