read only的vue route对象
今天大佬让我改个小需求,结果因为对route对象了解的不够多,未能完成任务,有点小尴尬。
需求是:在venue list页面的beforeRouteEnter钩子里,对to.query 进行参数校验以及初始化,说白了就是判断当前路由的query是否是我们需要的,而且符合类型要求。听上去蛮简单的的一个需求,做起来也不是很难。我就把必需的query列了出来,写了个循环判断下是否每个query都存在,不存在的话,判断下是哪个参数不存在,再给他赋个自定义的初始值。收工。
然而代码跑起来之后直接打脸。我的改动并没有让不符合要求的url重定向。然后大佬看了下我的代码,就自己来了。。
我俩的代码如下:
看了大佬的代码,我第一感觉是很简洁,没有那么多的if else,也没有遍历,而是通过展开符和解构赋值实现。虽然并不是什么复杂的逻辑,但是实现的很巧妙。相比之下,我的代码就笨重的多。然而,除了可读性,我并没有看出自己的代码有什么实现上的问题,我甚至觉得自己写的蛮对的。但就是跑不过。
通过查看一番文档,才发现,原来路由对象的属性,是只读的。
什么是路由对象?beforeRouteEnter钩子里的to 和 from 就是路由对象,组件中就是this.$route。
因此我这种通过遍历,想要直接修改route属性的方法根本没用。
以上是 read only的vue route对象 的全部内容, 来源链接: utcz.com/z/376679.html