vue的route.query多个同名参数会返回数组?
http://demo.com?name=1&name2
上面的地址,在vue中
const route = useRoute();route.query.name
route.query.name是['1','2']
现在想兼容只有一个值或多个值的情况,vue-route有没有提供方法,还是需要自己去实现。比如
route.getQuery('name');
- 一个值就取那个值
- 多个值就取最后一个
回答:
参考官网文档https://router.vuejs.org/zh/a...
回答:
参考的文档https://router.vuejs.org/zh/a...
// route/index.js 差不多就这思路const router = createRouter({
history: createWebHashHistory(),
routes,
parseQuery: function (opts) {
const query = qs.parse(opts);
const result = {};
for (let key in query) {
if (Array.isArray(query[key])) {
result[key] = query[key].pop();
} else {
result[key] = query;
}
}
return result;
},
});
// 然后使用route.query就是上面的result
回答:
你的问题里不是都取到数据了,要怎么样的值,自己处理不就行了
回答:
多个同名query
变成数组是HTTP
相关的内容了,并不是Vue
处理的。
其实尤大有提到过这种和原始设计有关的内容,Vue会保持原样或者往这个方向上去靠近,并不会去改变原有的设计,不去制造破坏/断层。
所以现在已经可以拿到合并后的集合了,单独处理一下就好了,如果是 String
就直接赋值,如果是 Array
就 pop()
取最后一个值(可以使用 isArray
来判断)。
以上是 vue的route.query多个同名参数会返回数组? 的全部内容, 来源链接: utcz.com/p/932923.html