Maison  >  Article  >  interface Web  >  la page de saut Uniapp transmet un grand nombre de paramètres

la page de saut Uniapp transmet un grand nombre de paramètres

WBOY
WBOYoriginal
2023-05-21 22:04:062681parcourir

Avec le développement de l'Internet mobile, les petits programmes et les applications H5 émergent progressivement dans divers scénarios. En tant que cadre de développement pouvant s'adapter à plusieurs plates-formes en même temps, uniapp présente de grands avantages dans le développement multi-terminaux. Cependant, si uniapp doit transmettre un grand nombre de paramètres lors du passage à la page, il peut rencontrer quelques problèmes. Ce qui suit présentera la solution consistant à transférer un grand nombre de paramètres vers la page de saut uniapp en fonction des besoins réels.

  1. Contexte du problème

Dans les projets réels, nous pouvons rencontrer un scénario dans lequel un grand nombre de paramètres doivent être transmis lors du passage d'une page à une autre. Par exemple, une page de détails de commande doit transmettre le numéro de commande, Commande. statut, heure de la commande, informations sur le destinataire, informations sur le produit, etc. Si vous utilisez la méthode jump fournie avec uniapp, c'est-à-dire transmettre des paramètres dans des API telles que navigateTo, vous devez combiner tous les paramètres qui doivent être transmis à un objet avant de sauter, puis passer l'objet en tant que paramètre de l'API. Cette méthode convient aux situations où il y a relativement peu de paramètres, mais lorsqu'il y a trop de paramètres, l'objet deviendra très volumineux et peut dépasser la limite de longueur des paramètres de l'API. navigateTo等API中传递参数,则需要在跳转前将所有需要传递的参数组合成一个对象,然后将该对象作为参数传递给API。这种方式适用于参数比较少的情况,但当参数过多时,这个对象就会变得非常庞大,而且还可能会超出API参数长度的限制。

  1. 解决方案

针对上述问题,我们可以采用一种更为灵活的传参方式,即在路由地址中携带参数,这种方式在uniapp中的实现方式如下:

(1)在跳转时,将所有需要传递的参数拼接成一个字符串,然后作为参数附加在目标页面的路由地址中。

// 例如目标页面地址为'/pages/order/detail', 我们需要传递的参数如下
var orderId = '123456';
var orderStatus = '已发货';
var orderTime = '2021-01-01';
// 将这些参数拼接在路由地址后面,形成新的跳转地址
var targetUrl = '/pages/order/detail?orderId=' + orderId + '&orderStatus=' + orderStatus + '&orderTime=' + orderTime;
// 跳转到目标页面
uni.navigateTo({
   url: targetUrl
});

(2)在目标页面中,使用uni.getQueryParam方法获取跳转地址中携带的参数。

// 在目标页面中获取跳转地址中携带的参数
var orderId = uni.getQueryParam('orderId');
var orderStatus = uni.getQueryParam('orderStatus');
var orderTime = uni.getQueryParam('orderTime');

需要注意的是,该方法只能获取路由地址中携带的参数,而无法获取通过navigateTo

    Solution
    1. Pour résoudre les problèmes ci-dessus, nous pouvons utiliser une méthode de passage de paramètres plus flexible, c'est-à-dire transporter des paramètres dans l'adresse de routage. Cette méthode est implémentée dans uniapp comme suit :

    (1) Lors du saut, concaténez tous les paramètres qui doivent être transmis dans une chaîne, puis ajoutez-la en tant que paramètre à l'adresse de routage de la page cible.

    rrreee

    (2) Dans la page cible, utilisez la méthode uni.getQueryParam pour obtenir les paramètres portés dans l'adresse de saut.

    rrreee

    Il est à noter que cette méthode ne peut obtenir que les paramètres portés dans l'adresse de routage, mais ne peut pas obtenir les paramètres transmis via des API telles que navigateTo.

    Suggestions pratiques

    L'utilisation de l'adresse de routage pour transporter des paramètres peut efficacement éviter le problème des objets paramètres trop volumineux et du dépassement de la limite de longueur des paramètres lors du passage de trop de paramètres. Mais dans la pratique, nous devons également prêter attention aux suggestions suivantes :

    (1) Les combinaisons de paramètres doivent être standardisées

    Lors de l'épissage des chaînes de paramètres, nous devons essayer de suivre certaines spécifications, telles que la connexion des noms et des valeurs des paramètres avec un signe égal. Utilisez & pour connecter différents paramètres, ce qui facilitera l'analyse ultérieure des paramètres dans la page cible et réduira le risque d'erreurs.

    🎜(2) Le nombre de paramètres doit être contrôlé🎜🎜Bien que l'utilisation d'adresses de routage pour transporter les paramètres puisse efficacement éviter les problèmes causés par un trop grand nombre de paramètres, nous devons toujours contrôler le nombre de paramètres, en particulier dans les petits programmes et les H5 avec peu de mémoire et des performances médiocres. Sur les plates-formes plus faibles, les transferts de paramètres inutiles doivent être minimisés pour améliorer les performances et la stabilité des applications. 🎜🎜(3) Les types de données de paramètres doivent être pris en compte🎜🎜Lors de l'utilisation d'adresses de routage pour transporter des paramètres, tous les paramètres doivent être convertis sous forme de chaîne. Par conséquent, après avoir obtenu les paramètres dans la page cible, certains types de données tels que les nombres et les booléens. doivent être utilisés lorsque la conversion du type de données est requise. 🎜🎜En bref, dans le développement d'Uniapp, le problème du transfert d'un grand nombre de paramètres dans les pages de saut peut être résolu en épissant les adresses de routage, mais les développeurs doivent toujours faire attention à la spécification, au nombre et au type de données des paramètres transmis. 🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn