疑问:
1.当跳转进入search路由组件后,再点击搜索按钮会报错 Avoided redundant navigation to current location: "/search" Why?
redundant: 多余的,过剩的 adj.
解答:


解决该问题引出的新的疑问:
1.为什么会出现这个问题,为什么能采用(或者说为什么要采用)这个方法去解决这个问题?
2.解决了会报这个错误的问题之后,继续点击search按钮,为什么不能将input框内的值传递过去即不能在params属性中看到keyWord的值的变化
注意:
1.当路由组件(router-link || push || replace)传递数据采用对象的写法时,传参中有params参数,需要配置name属性,配置name属性之后就无需配置path属性了。但是同时配置了path属性和name属性时,参数都可以传递,但是其中起到作用的是name属性,与path无关。若path和params参数一起使用,则路由无法跳转。
2.路由组件传递params参数时,若路由规则中配置了props属性接收参数时,无需在path属性中采用(/:key)占位接收参数,不会报Bug但不知这样写是否会有潜在错误
3.配置的路由规则中采用占位符接收数据并采用了可传可不传参数的写法(/:key?)未用props属性,若传递的params参数为空字符串,(地址栏中的路由的路径会丢失/search)。解决这个问题采用undefined,如传递参数的写法为 params:{keyWord: " " || undefined},这样之后地址栏中的路径就不会出错了。不用占位符接收参数而是用props来接受params参数时,传递的即使是空字符串也不会出现地址栏丢失路由地址的问题。
4.配置的路由规则中一定要写path属性,无论是否配置了name属性
5.当路由的配置规则中的path属性中配置了占位接收参数的写法可以在参数后加上一个?即(/:key?),代表着params参数传递或者不传递,若不配置这个问号,不传递params参数时,地址栏中的路径就会出现问题(地址栏中的路由的路径会丢失/search)。若没有采用占位参数接收数据,而是采用props属性配置接收数据可直接实现params参数传递或者不传递。
浙公网安备 33010602011771号