Vue面试题笔记
面试题1:路由传递参数(对象写法)path是否可以结合params参数一起使用?
答:路由跳转传参的时候,对象的写法可以是name,path形式,但是需要注意的是,path这种写法与params参数一起使用
this.$router.push({path:'/search',params:{keyword:this.keyword},query:{k:this.keyword.toUpperCase()}) 错误
路由传递参数的三种方式:
第一种:字符串形式
this.$router.push("/search" + this.keyword + "?k=" + this.keyword.toUpperCase());
第二种:模板字符串
this.$router.push(`/search/${this.keyword}?k=${this.keyword.toUpperCase()}`)
第三种:对象
this.$router.push({name:"search",params:{keyword:this.keyword},query:{k:this.keyword.toUpperCase()}})
面试题:2.如何指定params参数可传可不传?
答:比如:配置路由的时候占位了(params参数),但是路由调转的时候就不传递。路劲就会出现问题
hhtp://localhost:8000/#/?k=QWE
http://localhost:8000/#/search?k=QWE
如果路由要求传递params参数,但是你不传递params参数,就会发现URL有问题,如果只当params参数可以传递或者不传递,在配置路由的时候,在占位的后面加上一个问号【params可以传递或者不传递】
this.$router.push({name:"search",query:{k:this.keyword.toUpperCase()}});
面试题:3.params参数可以传递也可以不传递,但是如果传递是空串,如何解决?
答:使用undefined解决:params参数可以传递,不传递(空的字符串)
this.$router.push({name:'search',params:{keyword:' ‘ || undefined} , query:{k:this.keyword.toUpperCase()}})
面试题:4.路由组件能不能传递props数据?
答:可以的:三种写法
第一种:布尔值写法params props:true
第二种:对象写法:额外的给路由组件传递一些props props:{a:1, b:2},
第三种:函数写法:可以params参数,query参数,通过props
props:($route)=>{
return {keyword:$route.params.keyword,k:$route.query.k}
}
__EOF__
本文链接:https://www.cnblogs.com/HuangJiaZ/p/15955323.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构