0
点赞
收藏
分享

微信扫一扫

路由传参相关面试题

月白色的大狒 2022-02-19 阅读 61
前端vue.js

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

2:如何指定params参数可传不可传?

3:params参数可以传递也可以不传递,但是如果传递的是空串,如何解决?

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

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

答:路由跳转传参的时候,对象的写法可以是name、path形式,但是需要注意的是,path这种写法不能与params参数一起使用

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

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

答:如果路由要求传递params参数,但是你就不传递params参数,发现一件事情,URL会有问题 。比如:配置路由的时候,占位了(params参数),但是路由跳转的时候就不传递。 路径会出现问题.。

http://localhost:8080/#/?k=QWE

http://localhost:8080/#/search?k=QWE

如何指定params参数可以传递、或者不传递,在配置路由的时候,在占位的后面加上一个问号params可以传递或者不传递。

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

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

答:使用undefined解决:params参数可以传递、不传递(空的字符串)

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

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

答:可以的:三种写法

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

1. 布尔值写法:params

在组件中要定义props参数。

注意,只能传递props,并且是params参数

<script>
export default {
  name: '',
  // 路由组件可以传递props
  props: ['keyword']
}
</script>
, {
    path: "/search/:keyword?",
    component: Search,
    meta: {show: true},
    name: "search",
    //  路由组件能不能传递props数据?
    //  1.布尔值写法:params
    props: true
  }, 

 2.对象写法:额外的给路由组件传递一些props

<script>
export default {
  name: '',
  // 路由组件可以传递props
  props: ['keyword', 'a', 'b']
}
</script>
, {
    path: "/search/:keyword?",
    component: Search,
    meta: {show: true},
    name: "search",
    //  路由组件能不能传递props数据?
    //  2.对象写法:额外的给路由组件传递一些props
    props: {a: 1, b: 2}
  }, 

3.函数写法:可以params参数,query参数,通过props传递给路由组件

, {
    path: "/search/:keyword?",
    component: Search,
    meta: {show: true},
    name: "search",
    //  路由组件能不能传递props数据?
    //  3.函数写法:可以params参数,query参数,通过props传递给路由组件
    props: ($route) => ({keyword: $route.params.keyword, k: $route.query.k})
  }, 
举报

相关推荐

0 条评论