Supprimer les éléments de requête du routeur
P粉005134685
P粉005134685 2023-08-25 22:53:17
0
1
499
<p>J'utilise la méthode <code>replace</code> dans Vue pour ajouter <code>query</code> Si la valeur n'existe pas, je l'attribue comme <code>undefined</code>. </p> <pre class="brush:js;toolbar:false;">this.$router.replace({ nom : "admin-frs", requête: { limite : this.pageSize, page : this.currentPage, trier : this.sortbyapi || non défini, langue : this.sortbyapiLang || non défini, }, }) ≪/pré> <p>Cela entraînera la disparition des éléments de requête de l'URL lorsque les données de la requête seront mises à jour, ce qui est acceptable. </p> <p>Mais cela ne le supprime pas de l'objet de requête. </p> <p>Existe-t-il un meilleur moyen que celui-ci ? </p> <p>Est-il également possible d'obtenir les éléments de requête de l'itinéraire, comme <code>&limit=10...etc</code> ? </p>
P粉005134685
P粉005134685

répondre à tous(1)
P粉982009874

Si je comprends bien, l'OP souhaite que l'opération soit transmise à l'objet de requête de router.replace. Peut être implémenté en utilisant le standard js.

Tout d'abord, nommez explicitement une variable de requête...

let query = $router.query;

Pour supprimer un attribut, vous pouvez utiliser l'opérateur js delete. Par exemple, pour supprimer query.limit...

// 删除limit属性
if (!this.pageSize) delete query.limit;

Alternativement, si vous créez cette requête, vous ne pouvez pas ajouter l'attribut limit en premier lieu...

let query = {};
if (this.pageSize) query.limit = this.pageSize;
if (this.currentPage) query.page = this.currentPage;
// 其他属性也是类似的处理
// query现在只包含上述选择的属性

Après avoir effectué l'une de ces opérations, transmettez les variables au routeur...

$router.replace({ name: "admin-frs", query });

Pour le convertir en chaîne, il existe probablement plusieurs façons, y compris celles de nombreuses bibliothèques que vous possédez, mais la méthode native est...

let params = [];
for (let key in query)
  params.push(`${encodeURIComponent(key)}=${encodeURIComponent(query[key])}`);
const queryString = params.join("&");
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal