vue中的$router与$route的区别分析

红太狼 2023-06-05 14:59 59阅读 0赞

一. r o u t e r 和 router和 router和route的区别

  1. **$router:是路由操作对象,包含路由跳转的方法,钩子函数等(只写对象)**
  2. 例如:history对象 this.$router.push会往history中添加一个新的记录
  3. 跳转用的链接就可以使用this.$router.push ,与router-link 跳转一样
  4. **$route 相当于当前正在跳转的路由对象,可以获取里面的name,path,params,query等(只读对象)**
  5. 例:
  6. //$router操作 路由跳转
  7. this.$router.push({name:"hello",params:{name:'你好'age:'18'}})
  8. //$route 读取 路由参数接收
  9. let name = this.$route.params.name

二、路由跳转方式(name、path)与路由传参方式(params、query)

  1. ****path name路由跳转方式,都可以使用query传参****
  2. 例:
  3. //Router.js
  4. {
  5. path:'/hello',
  6. name:'HelloWorld',
  7. component:hello
  8. }
  9. //跳转方式 name
  10. this.$router.push({
  11. name:'HelloWorld',
  12. query:{
  13. id:123
  14. }
  15. })
  16. //跳转方式 path
  17. this.$router.push({
  18. path:'/hello',
  19. query:{
  20. id:123
  21. }
  22. })
  23. //获取路由参数信息方式
  24. { { let id = this.$route.query.id}}
  25. **注意:path路由跳转方式,params传参会被忽略,只能用name命名的方式跳转
  26. params传参,push里面只能是name:'xxxx',不能是path:'/xxxx',因为params只能用name来引入路径,
  27. 如果这里写成了path,接收参数页面会是undefined
  28. 另外,二者还有点区别,直白的来说query相当于get请求,页面跳转的时候,可以在地址栏看到请求参数,而params相当于post请求,参数不会再地址栏中显示。
  29. params传参如果路由上面不写参数,也是可以传过去的,但不会在url上面显示出你的参数,并且当你跳到别的页面或者刷新页面的时候参数会丢失**

发表评论

表情:
评论列表 (有 0 条评论,59人围观)

还没有评论,来说两句吧...

相关阅读