当前位置: 首页 > news >正文

Vue路由重定向

一、Vue路由-重定向

1.问题

网页打开时, url 默认是 / 路径,如果未匹配到组件时,会出现空白

2.解决方案

重定向 → 匹配 / 后, 强制跳转 /home 路径

3.语法

{ path: 匹配路径, redirect: 重定向到的路径 },
比如:
{ path:'/' ,redirect:'/home' }

4.代码演示

const router = new VueRouter({routes: [{ path: '/', redirect: '/home'},...]
})

二、Vue路由-404

1.作用

当路径找不到匹配时,给个提示页面

2.位置

404的路由,虽然配置在任何一个位置都可以,但一般都配置在其他路由规则的最后面

3.语法

path: “*” (任意路径) – 前面不匹配就命中最后这个

import NotFind from '@/views/NotFind'const router = new VueRouter({routes: [...{ path: '*', component: NotFind } //最后一个]
})

4.代码示例

NotFound.vue

<template><div><h1>404 Not Found</h1></div>
</template><script>
export default {}
</script><style></style>

router/index.js

...
import NotFound from '@/views/NotFound'
...// 创建了一个路由对象
const router = new VueRouter({routes: [...{ path: '*', component: NotFound }]
})export default router

三、Vue路由-模式设置

1.问题

路由的路径看起来不自然, 有#,能否切成真正路径形式?

  • hash路由(默认) 例如: http://localhost:8080/#/home
  • history路由(常用) 例如: http://localhost:8080/home (以后上线需要服务器端支持,开发环境webpack给规避掉了history模式的问题)

2.语法

const router = new VueRouter({mode:'histroy', //默认是hashroutes:[]
})

四、编程式导航-两种路由跳转方式

1.问题

点击按钮跳转如何实现?

在这里插入图片描述

2.方案

编程式导航:用JS代码来进行跳转

3.语法

两种语法:

  • path 路径跳转 (简易方便)
  • name 命名路由跳转 (适合 path 路径长的场景)

4.path路径跳转语法

特点:简易方便

//简单写法
this.$router.push('路由路径')//完整写法
this.$router.push({path: '路由路径'
})

5.代码演示 path跳转方式

6.name命名路由跳转

特点:适合 path 路径长的场景

语法:

  • 路由规则,必须配置name配置项

    { name: '路由名', path: '/path/xxx', component: XXX },
    
  • 通过name来进行跳转

    this.$router.push({name: '路由名'
    })
    

7.代码演示通过name命名路由跳转

五、编程式导航-path路径跳转传参

1.问题

点击搜索按钮,跳转需要把文本框中输入的内容传到下一个页面如何实现?
在这里插入图片描述

2.两种传参方式

1.查询参数

2.动态路由传参

3.传参

两种跳转方式,对于两种传参方式都支持:

① path 路径跳转传参

② name 命名路由跳转传参

4.path路径跳转传参(query传参)

//简单写法
this.$router.push('/路径?参数名1=参数值1&参数2=参数值2')
//完整写法
this.$router.push({path: '/路径',query: {参数名1: '参数值1',参数名2: '参数值2'}
})

接受参数的方式依然是:$route.query.参数名

5.path路径跳转传参(动态路由传参)

//简单写法
this.$router.push('/路径/参数值')
如:this.$router.push(`/search/${this.searchword}`)
//完整写法
this.$router.push({path: '/路径/参数值'
})

index.js

routes: [{ path: '/search/:word?', component: Search }]

接受参数的方式依然是:$route.params.参数值, 如: $route.params.searchword

六、编程式导航-name命名路由传参

1.name 命名路由跳转传参 (query传参)

this.$router.push({name: '路由名字',query: {参数名1: '参数值1',参数名2: '参数值2'}
})

2.name 命名路由跳转传参 (动态路由传参)

this.$router.push({name: '路由名字',params: {参数名: '参数值',}
})

注意: path不能配合params使用,所以在index.js中路由的配置也需要有name

3.总结

编程式导航,如何跳转传参?

1.path路径跳转

  • query传参

    this.$router.push('/路径?参数名1=参数值1&参数2=参数值2')
    this.$router.push({path: '/路径',query: {参数名1: '参数值1',参数名2: '参数值2'}
    })
    
  • 动态路由传参

    this.$router.push('/路径/参数值')
    this.$router.push({path: '/路径/参数值'
    })
    

2.name命名路由跳转

  • query传参

    this.$router.push({name: '路由名字',query: {参数名1: '参数值1',参数名2: '参数值2'}
    })
    
  • 动态路由传参 (需要配动态路由)

    this.$router.push({name: '路由名字',params: {参数名: '参数值',}
    })
    
http://www.lryc.cn/news/222161.html

相关文章:

  • MTK_ISP模块调试总结
  • Kotlin基本语法
  • macos端串口调试推荐 serial直装激活 for mac
  • MapReduce WordCount程序实践(IDEA版)
  • go程序获取工作目录及可执行程序存放目录的方法-linux
  • 数据中台之数据建模工程实操
  • 三国志14信息查询小程序(历史武将信息一览)制作更新过程06-复现小程序
  • 《研发效能(DevOps)工程师》课程简介(五)丨IDCF
  • Jupyter Notebook快速上手
  • 三款软件录制电脑屏幕视频
  • react fiber架构【详细讲解,看这一篇就够了】
  • 竞赛 深度学习疲劳检测 驾驶行为检测 - python opencv cnn
  • 国风数字人:数字时代的传统戏剧文化代言人
  • 腾讯广告RACE曝光归因模型
  • 使用python将word转pdf
  • Python装饰器的艺术
  • [答疑]校长出轨主任流程的业务建模
  • 【网络管理——操作系统与安全】
  • 62、使用python进行rk3588开发板进行推流亚马逊云服务上,进行实时播放
  • Microsoft Dynamics 365 CE 扩展定制 - 7. 安全
  • Linux - 进程程序替换 - C/C++ 如何实现与各个语言之间的相互调用 - 替换环境变量
  • react-native 0.63 适配 Xcode 15 iOS 17.0+
  • 易点易动设备管理系统:提升设备巡检和维修效率,延长设备使用寿命的利器
  • Vue3:解决基地址不同 数据交互http与https跨域问题
  • chatgpt升级啦,训练数据时间更新到2023年4月,支持tools(升级functionCall),128k上下文
  • 各种格式文件预览
  • 21款奔驰GLE350升级迈巴赫电动踏板 上下车更加方便
  • 【Android】Lombok for Android Studio 离线插件
  • 在Docker中设置Redis的密码
  • C++跨模块传递CRT引发问题