モバイルインターネットの発展に伴い、さまざまなシーンで小さなプログラムやH5アプリケーションが徐々に登場していますが、uniappは複数のプラットフォームに同時に対応できる開発フレームワークとして、クロスターミナル開発において大きなメリットを持っています。ただし、uniapp がページにジャンプするときに多数のパラメーターを渡す必要がある場合、いくつかの問題が発生する可能性があります。以下では、実際のニーズから始めて、uniapp ジャンプ ページで多数のパラメーターを渡すためのソリューションを紹介します。
実際のプロジェクトでは、あるページから別のページに移動するときに、たとえば次のような多数のパラメータを渡す必要があるシナリオに遭遇することがあります。 、注文詳細ページでは、注文番号、注文ステータス、注文時間、受取人情報、製品情報などを渡す必要があります。 uniapp に付属のジャンプ メソッドを使用する場合、つまり navigateTo
などの API でパラメータを渡す場合は、ジャンプする前にオブジェクトに渡す必要があるすべてのパラメータを組み合わせてから、オブジェクトを API のパラメータとして使用します。この方法はパラメータが比較的少ない場合に適していますが、パラメータが多すぎるとオブジェクトが非常に大きくなり、API パラメータの長さ制限を超える可能性があります。
上記の問題に対処するには、パラメータを渡すより柔軟な方法、つまりルーティング アドレスにパラメータを含める方法を使用できます。この方法は次のとおりです。 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
などの API を介して渡されたパラメータは取得できないことに注意してください。
ルーティング アドレスを使用してパラメーターを運ぶと、パラメーター オブジェクトが大きすぎたり、パラメーターが多すぎるときにパラメーターの長さ制限を超えたりする問題を効果的に回避できます。しかし実際には、次の提案にも注意を払う必要があります:
(1) パラメータの組み合わせは標準化する必要があります
パラメータ文字列を結合するときは、次のような特定の仕様に従うように努める必要があります。パラメータ名とパラメータ値は等号で接続され、異なるパラメータは & で接続されます。これにより、ターゲット ページでのその後のパラメータの解析が容易になり、エラーの可能性が減ります。
(2) パラメータの数を制御する必要があります
ルーティング アドレスを使用してパラメータを伝送すると、パラメータが多すぎることによって引き起こされる問題を効果的に回避できますが、それでもパラメータの数を制御する必要があります。小さなプログラムの場合 H5 や H5 など、メモリが少なくパフォーマンスが低いプラットフォームでは、アプリケーションのパフォーマンスと安定性を向上させるために、不必要なパラメータ転送を最小限に抑える必要があります。
(3) パラメータのデータ型を考慮する必要があります
ルーティング アドレスを使用してパラメータを運ぶ場合、すべてのパラメータを文字列形式に変換する必要があるため、ターゲット ページでパラメータを取得した後、一部のパラメータは文字列形式に変換する必要があります。数値、ブール値、その他のデータ型が使用される場合は、データ型変換が必要です。
つまり、ユニアプリ開発においてジャンプページで大量のパラメータを転送する問題は、ルーティングアドレスを結合することで解決できますが、開発者は依然としてルーティングアドレスの仕様、数、データ型に注意を払う必要があります。渡されたパラメータ。
以上がuniapp ジャンプ ページは多数のパラメータを渡しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。