百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术教程 > 正文

Vue基础六——vue-router 利用url传递参数

toqiye 2024-10-01 22:59 1 浏览 0 评论

我们之前已经学会传递参数,但是我们这些老程序员的情怀还是利用url来传递参数,因为我们以前在前后端没有分开开发的时候,经常这样做。在实际开发也是有很多用URL传值的需求,比如我们在新闻列表中有很多新闻标题整齐地排列,我们需要点击每个新闻标题打开不同的新闻内容,这时在跳转路由时跟上新闻编号就十分实用。

1.3.1、:冒号的形式传递参数

我们可以在理由配置文件里以:冒号的形式传递参数,这就是对参数的绑定。 -. 在配置文件里以冒号的形式设置参数。我们在/src/router/index.js文件里配置路由。

{
  path: '/params/:newsId/:newsTitle',
  name: 'Params',
  component:Params
}

我们需要传递的参数是新闻ID(newsId)和新闻标题(newsTitle).所以我们在路由配置文件里制定了这两个值。

在src/components目录下建立我们params.vue组件,也可以说是页面。我们在页面里输出了url传递的的新闻ID和新闻标题。

<template>
  <div>
    <h2>{{msg}}</h2>
    <p>新闻ID:{{$route.params.newsId}}</p>
    <p>新闻标题:{{$route.params.newsTitle}}</p>
  </div>
</template>

<script>
export default {
  data() {
    return {
      msg: "params pages"
    };
  }
};
</script>

在App.vue文件里加入我们的标签。这时候我们可以直接利用url传值了。
<router-link to="/params/aaa/bbb">Params</router-link>

我们已经实现了以url方式进行传值,这在实际开发中经常使用,必须完全了解。

1.3.2、正则表达式在URL传值中的应用

上边的例子,我们传递了新闻编号,现在需求升级了,我们希望我们传递的新闻ID只能是数字的形式,这时候我们就需要在传递时有个基本的类型判断,vue是支持正则的。

加入正则表达式需要在路由配置文件里(/src/router/index.js)以圆括号的形式加入。

path:'/params/:newsId(\\d+)/:newsTitle',

加入正则,我们再传递数字之外的其他参数,params.vue组件就没有办法接收到。

1.4、vue-router 的重定向-redirect

开发过程中有时候我们虽然设置的路径不一致,但是我们希望跳转到同一个页面,或者说是打开同一个组件。这时候我们就用到了路由的重新定向redirect参数。

1.4.1、redirect基本重定向

我们只要在路由配置文件中(/src/router/index.js)把原来的component换成redirect参数就可以了。我们来看一个简单的配置。

import Vue from 'vue'
import Router from 'vue-router'
import HelloWorld from '@/components/HelloWorld'
import Hi1 from '@/components/Hi1'
import Hi2 from '@/components/Hi2'
import Params from '@/components/Params'

Vue.use(Router)
export default new Router({
  routes: [{
      path: '/',
      name: 'HelloWorld',
      component: HelloWorld
    },
    {
      path: '/params/:newsId(\\d+)/:newsTitle',
      name: 'Params',
      component: Params
    },
    {
      path: '/goHome',
      redirect: '/'
    }
  ]
})

这里我们设置了goHome路由,但是它并没有配置任何component(组件),而是直接redirect到path:’/’下了,这就是一个简单的重新定向。

1.4.2、重定向时传递参数

我们已经学会了通过url来传递参数,那我们重定向时如果也需要传递参数怎么办?其实vue也已经为我们设置好了,我们只需要在ridirect后边的参数里复制重定向路径的path参数就可以了。可能你看得有点晕,我们来看一段代码:

{
  path:'/params/:newsId(\\d+)/:newsTitle',
  component:Params
},{
  path:'/goParams/:newsId(\\d+)/:newsTitle',
  redirect:'/params/:newsId(\\d+)/:newsTitle'
}

已经有了一个params路由配置,我们在设置一个goParams的路由重定向,并传递了参数。这时候我们的路由参数就可以传递给params.vue组件了。参数接收方法和正常的路由接收方法一样。
1.5、alias别名的使用

上节学习了路由的重定向,我相信大家已经可以熟练使用redirect进行重定向了。使用alias别名的形式,我们也可以实现类似重定向的效果。

首先我们在路由配置文件里(/src/router/index.js),给上节课的Home路径起一个别名,aliasHi1。

{
  path: '/hi1',
  name: 'hi1',
  component: Hi1,
  alias:'/aliasHi1'
}

配置我们的,起过别名之后,可以直接使用<router-link>标签里的to属性,进行重新定向。

<router-link to="/aliasHi1">aliasHi1</router-link>

相关推荐

完美解决MAC电脑空间不足问题(完美解决mac电脑空间不足问题的办法)

很多用MAC(苹果笔记本)电脑的人,特别是做iOS开发的,都会遇到一个头疼的问题,那就是电脑磁盘空间不足的问题。这个问题也困扰了我好久,我的开发机是256G的SSD(固态硬盘),但是用着用着就会空间不...

系统清理软件Omni Remover for Mac版

内容介绍你是否需要一款可以帮你清理Mac系统顽固垃圾的工具呢?试试OmniRemoverforMac吧!OmniRemoverMac版是一款运行在Mac平台上的系统清理软件。OmniRem...

mac上一款好用的多功能系统清理软件Omni Remover for Mac

mac上一款好用的多功能系统清理软件——OmniRemoverforMac。OmniRemovermac破解版是Mac平台上的一款软件清理工具。OmniRemoverMac版专为优化内存...

清理重建mac OS图标缓存(mac系统清空)

关于macos缓存问题你了解多少?今天macdown小编带大家了解下有关Mac清除图标缓存的相关知识!你知道吗?为了提升图形界面加载速度,默认情况下macOS针对Finder和Dock中的...

iOS 9 人机界面指南(五):图标与图形设计

来人人都是产品经理【起点学院】,BAT实战派产品总监手把手系统带你学产品、学运营。文章索引5.1图标与图像尺寸(IconandImageSizes)5.2应用图标(AppIcon)5.2....

你中招了吗?盘古团队发布XcodeGhost病毒检测应用

最近大批知名iOS应用被感染XcodeGhost病毒事件闹得沸沸扬扬,虽然该病毒作者发表声明称,XcodeGhost源于自己的实验,没有任何威胁性行为,同时公开了源代码。但依然无法消除众多用户的担忧,...

iOS应用感染Xcode真是无恶意实验?感染APP最新名单及版本号

前瞻科技快讯9月19日消息,一向号称是最安全的iOS真的不安全了?对于这两天闹得沸沸扬扬的多款iOS应用感染XcodeGhost病毒事件,今日凌晨4点左右,网友@XcodeGhost-Author在微...

苹果应用签名失败怎么处理(ios应用签名什么意思)

在移动应用开发过程中,苹果应用签名失败是一种常见的问题,它可能由多种原因引起。本文将介绍一些处理苹果应用签名失败的方法,帮助开发者解决这个问题。检查证书和描述文件:首先,开发者应该检查使用的证书和描述...

好用的系统扫描和清理工具推荐:OS Cleaner Pro for Mac

为大家推荐一款全面的系统扫描和清理工具,OSCleanerProforMac...

系统清理软件 Omni Remover for Mac

你是否需要一款可以帮你清理Mac系统顽固垃圾的工具呢?试试OmniRemoverforMac吧!OmniRemoverMac版是一款运行在Mac平台上的系统清理软件。OmniRemover...

优秀的Mac系统清理软件(mac清理系统占用空间)

OmniRemoverforMac是一款优秀的系统清理软件,功能有清洁卸载膨胀且顽固的应用程序,在macOSCatalina上清除32位不兼容的应用程序,iTunes,Xcode和Sketc...

苹果app安卓apk应用内用微信登录游戏时会显示登录失败怎么解决?

解决苹果iOS应用和安卓APK应用在使用微信授权登录时出现“登录失败,签名不一致”的问题,可以按照以下步骤进行排查和解决:1.核实AppID和AppSecret:确保iOS和安卓项目中使用的微信开放...

Cleaner for Xcode(遗留废弃文件清理工具)

Mac上的Xcode总是占用很大空间,并且用的时间越久越大!可通过删除不需要的和不建议使用的文件来帮助您加快Xcode的运行速度,你可以每月或者每周运行一次进行清理。有需要的朋友,赶快来下载吧~Cle...

Cleaner for Xcode mac(xcode清理工具)

Xcode文件太多,如何检测清理?试试CleanerforⅩcode吧!CleanerforXcodeforMac可以检测您的Xcode占用磁盘的情况,统计各个部件所占用的空间。并帮助您...

柠檬清理一款Mac设备必备的实用工具

简介柠檬清理是针对macOS系统专属制定的清理工具。主要功能包括重复文件和相似照片的识别、软件的定制化垃圾扫描、可视化的全盘空间分析、内存释放、浏览器隐私清理以及设备实时状态的监控等。重点聚焦清理功能...

取消回复欢迎 发表评论: