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 就直接赋值,如果是 Arraypop() 取最后一个值(可以使用 isArray 来判断)。

以上是 vue的route.query多个同名参数会返回数组? 的全部内容, 来源链接: utcz.com/p/932923.html

回到顶部