B站尚品汇项目面试题整理笔记

1、路由相关

 1.1、路由传参(对象写法)path是否可以结合params参数一起使用?

答:不可以,对象写法中可以是name、path形式,但是path这种写法不能与params参数一起使用

this.$router.push({path:'/search',params:{keyword:this.keyword},query:{k:this.keyword.toUpperCase()})

上面的写法会报错,只能使用命名路由的方式,name和params一起使用:

this.$router.push({
name:'search',
params:{keyword:this.keyword},
query:{k:this.keyword.toUpperCase()}
})

1.2、如何指定params参数可传可不传?

如果路由要求传递params参数,但是在传递的时候不写,那么URL会有问题,只需要在配置路由时,在占位符的后面加上?即可表示params参数可传可不传:
 

        {
            path:'/search/:keyword?',
            component:Search,
            meta:{show:true},
            name:'search'
        },

1.3 params参数可传可不传,但是如果传递的是空串,如何解决?

答:可以使用undefined解决

 this.$router.push({
name:'search',
params:{keyword:''||undefined},
query:{this.keyword.toUpperCase()}
});

1.4 路由组件能不能传递props数据?

答:可以,路由组件的props有3中写法:布尔值、对象、函数 ,官方推荐布尔值写法,其他两种写法耦合度较高。

当是布尔值时:只能传递params参数;

当是对象写法时:只能传递自定义静态数据,额外的数据;

当是函数时:可以传递params、query、自定义数据

{
    path:'/search/:keyword?',
    component:Search,
    meta:{show:true},
    name:'search',
    // props:true,
    // props:[{username:'haha'}],
    props($route){
        return{
            keyword:$route.params.keyword,
            k:$route.query.keyword,
        }
    }
},

  • 0
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值