vue-router(路由)详细(2)

5.路由的query参数

1.传递参数


 <li v-for="m in messageList" :key="m.id">

            <!-- 跳转路由并携带query参数 to的字符串写法 -->

            <!-- <router-link :to="`/home/message/detail?id=${m.id}&title=${m.title}`">{{m.title}}</router-link>&nbsp;&nbsp; -->



            <!-- 跳转路由并携带query参数 to的对象写法 -->

            <router-link :to="{

                //你要去到哪个组件

                path:'/home/message/detail' ,

                query:{

                    id:m.id,

                    title:m.title

                }

            }">

            {{m.title}}

            </router-link>

            </li>     



2.接收参数


$route.query.id

$route.query.title



6.给路由命名

当多级路由时给上name名可以简化跳转,一级路由给不给name没有多大影响


 routes:[

        {

            //给路由命名 跳转时直接用name:命名 不用path 

            name:'nameabout',

            path:'/about',

            component:About

        },

        {

            path:'/home',

            component:Home,

            // 二级路由

            children:[

                {

                //这里不用加斜

                path:'news',

                component:News,

                },

                {

                //这里不用加斜

                path:'message',

                component:Message,

                children:[

                    {

                        //多级路由给name 可以简化跳转

                        name:'namedetail',

                        path:'detail',

                        component:Detail

                    }

                ]

                }



            ]

        }

]



2.简化跳转


<router-link :to="{

                //你要去到哪个组件 

                //直接使用name 不用path路径

                name:'namedetail' ,

                query:{

                    id:m.id,

                    title:m.title

                }

            }">

            {{m.title}}

            </router-link>



6.路由的params参数

1.配置路由,声明接收params参数


routes:[

        {

            name:'nameabout',

            path:'/about',

            component:About

        },

        {

            path:'/home',

            component:Home,

            // 二级路由

            children:[

                {

                //这里不用加斜

                path:'news',

                component:News,

                },

                {

                //这里不用加斜

                path:'message',

                component:Message,

                children:[

                    {

                        name:'namedetail',

                        path:'detail/:id/:title', //使用占位符声明接收params参数

                        component:Detail

                    }

                ]

                }



            ]

        }

    ]



2.传递参数


 <!-- 跳转路由并携带params参数 to的字符串写法 -->

            <router-link :to="`/home/message/detail/${m.id}/${m.title}`">{{m.title}}</router-link>&nbsp;&nbsp; 



            <!-- 跳转路由并携带params参数 to的对象写法 -->

            <router-link :to="{

                //你要去到哪个组件

                name:'namedetail' ,

                params:{

                    id:m.id,

                    title:m.title

                }

            }">

            {{m.title}}

            </router-link>



特别注意:路由携带params参数时,若使用to的对象写法,则不能使用path配置项,必须使用name配置!

3.接收参数


$route.params.id

$route.params.title



7.路由的props配置

作用:让路由组件更方便的收到参数


    {

        name:'namedetail',

        path:'detail/:id/:title', //使用占位符声明接收params参数

        component:Detail,

        // props的第一种写法 ,该对象中的所有key-value都会以props的形式传给Detail组件

         props:{

             a:1,

             b:'helloworld'

         }



        // props的第二种写法:值为布尔值 Boolen 若布尔值为真,就会把该路由组件收到的所有params参数,以props的形式传给Detail组件

          props:true



         // props的第三种写法:值为函数

         props($route){

             return {

                 id:$route.query.id,

                 title:$route.query.title

             }

         }



     }



6.缓存路由组件

1.作用:让不展示的路由保持挂载,不被销毁

2.具体编码:


 <keep-alive include="News">

      <router-view></router-view>

 </keep-alive>



7.两个新的生命周期钩子

1.作用:路由组件所独有的两个钩子,用于捕获路由组件的激活状态

2.具体名字:

1.activated 路由组件激活时触发

2.deactivated 路由组件失活时触发

7.路由守卫

全局前置路由守卫

// 前置路由守卫

router.beforeEach((to,from,next)=>{

    // console.log(to)

    // console.log(from)

    next()

        if(to.meta.isAuth){

         if(localStorage.getItem('school')=== 'aiguigu'){

            next()

        }else{

           alert("请登录")

        }

         

    }

})



全局后置路由守卫

// 后置路由守卫

router.afterEach((to,from) =>{

    console.log(to,from)

})





独享路由守卫

      {

       //这里不用加斜

       name:'xinwen',

       path:'news',

       component:News,

       meta:{isAuth:true},

       // 独享路由守卫

       beforeEnter:(to,from,next)=>{

           if(to.meta.isAuth){

               if(localStorage.getItem('school')=== 'aiguigu'){

                  next()

              }else{

                 alert("请登录")

              }

               

          }

       }

   },



#  最后

**自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。**

**深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。**

**因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。**

![img](https://img-blog.csdnimg.cn/img_convert/093e04625121be30a19ac8cb2cf44fba.jpeg)

![](https://img-blog.csdnimg.cn/img_convert/779ead419cd688c799aee2f7d7bee883.png)

![](https://img-blog.csdnimg.cn/img_convert/dc1951b96f61d71bc169a570a38de2e3.png)

**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点!不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!**

[**如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!**](https://bbs.csdn.net/topics/618191877)

**由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!**
深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。**

**因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。**

[外链图片转存中...(img-w3HnuWT2-1715659023875)]

[外链图片转存中...(img-ZgSdKCMY-1715659023876)]

[外链图片转存中...(img-HcrshYki-1715659023876)]

**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点!不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!**

[**如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!**](https://bbs.csdn.net/topics/618191877)

**由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!**
  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值