我正在尝试为应用创建可共享的URI,正在使用vue路由器3。
问题是当我使用类似的路线访问我的应用程序时
localhost:8000/logs?param1=yeaa&%3Bparam2=yeaa2
此URI被vue路由器捕获,但转换为
router.query.param1 // it works
router.query.param2 // it fail and return undefined
然后,当我尝试使用
访问查询参数时amp;param2
事实上,当我在Vue devtools中检查时,可以看到vue路由器认为第二个参数是$route
path:"/logs"
query:Object
amp;param2:"yeaa2"
param1:"yeaa"
params:Object (empty)
fullPath:"/logs?param1=yeaa&%3Bparam2=yeaa2"
meta:Object (empty)
router-link
这有点无聊,我没有在vue路由器文档上找到是否有避免这种情况的选项/配置。
仅供参考,当我使用{
component: Log,
path: '/logs',
props: route => ({
oldQueryOptions: {
absoluteTimeRangeFrom: route.query.absoluteTimeRangeFrom,
absoluteTimeRangeTo: route.query.absoluteTimeRangeTo,
query: route.query.query,
rangeKeyword: route.query.rangeKeyword,
relativeTimeRange: route.query.relativeTimeRange,
type: route.query.type,
},
}),
},
访问具有相同参数的相同URI时,此问题就消失了。
是否可以避免在vue路由器配置中(可能在文档中未充分了解)或使用普通JS进行这种字符转义?
如果不是,我认为这是vue路由器的问题。
编辑
我在哪里创建路线
getElementByID("msgs").innerHTML += ("<p>" + "{{data[-1]}}" + "<p>");