>  기사  >  웹 프론트엔드  >  uniapp 점프 페이지는 많은 수의 매개변수를 전달합니다.

uniapp 점프 페이지는 많은 수의 매개변수를 전달합니다.

WBOY
WBOY원래의
2023-05-21 22:04:062688검색

모바일 인터넷의 발전과 함께 다양한 시나리오에서 소규모 프로그램과 H5 애플리케이션이 점차 등장하고 있습니다. 동시에 여러 플랫폼에 적응할 수 있는 개발 프레임워크로서 uniapp은 크로스 터미널 개발에 큰 이점을 가지고 있습니다. 그러나 uniapp이 페이지로 이동할 때 많은 수의 매개변수를 전달해야 하는 경우 몇 가지 문제가 발생할 수 있습니다. 다음은 실제 필요에 따라 다수의 매개변수를 uniapp 점프 페이지로 전송하는 솔루션을 소개합니다.

  1. 문제 배경

실제 프로젝트에서는 한 페이지에서 다른 페이지로 이동할 때 많은 수의 매개변수를 전달해야 하는 시나리오에 직면할 수 있습니다. 예를 들어 주문 세부정보 페이지는 주문 번호 Order를 전달해야 합니다. 상태, 주문시간, 수령인 정보, 상품정보 등 uniapp에 포함된 점프 메소드, 즉 navigateTo와 같은 API에 매개변수를 전달하는 경우 점프하기 전에 개체에 전달해야 하는 모든 매개변수를 결합한 후 전달해야 합니다. 객체를 API에 대한 매개변수로 사용합니다. 이 방법은 매개변수가 비교적 적은 상황에 적합하지만 매개변수가 너무 많으면 개체가 매우 커지고 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. 위의 문제를 해결하기 위해 보다 유연한 매개변수 전달 방법, 즉 라우팅 주소에 매개변수를 전달하는 방법을 사용할 수 있습니다. 이 방법은 다음과 같이 uniapp에서 구현됩니다.
    (1) 점프할 때 전달해야 하는 모든 매개변수를 문자열로 연결한 다음 대상 페이지의 라우팅 주소에 매개변수로 추가합니다.

    rrreee

    (2) 대상 페이지에서 uni.getQueryParam 메소드를 사용하여 점프 주소에 담긴 매개변수를 가져옵니다.

    rrreee

    이 방법은 라우팅 주소에 포함된 매개변수만 얻을 수 있고, navigateTo와 같은 API를 통해 전달된 매개변수는 얻을 수 없다는 점에 유의하세요.

    실용적인 제안

    라우팅 주소를 사용하여 매개변수를 전달하면 매개변수 개체가 너무 크거나 매개변수를 너무 많이 전달할 때 매개변수 길이 제한을 초과하는 문제를 효과적으로 방지할 수 있습니다. 하지만 실제로는 다음 제안 사항에도 주의를 기울여야 합니다.

    (1) 매개변수 조합은 표준화되어야 합니다.

    매개변수 문자열을 연결할 때는 매개변수 이름과 매개변수 값을 연결하는 등 특정 사양을 따르도록 노력해야 합니다. 등호를 사용하여 다양한 매개변수를 연결하면 대상 페이지에서 매개변수의 후속 분석이 용이해지고 오류 가능성이 줄어듭니다.

    (2) 매개변수 수를 제어해야 합니다🎜🎜라우팅 주소를 사용하여 매개변수를 전달하면 너무 많은 매개변수로 인해 발생하는 문제를 효과적으로 피할 수 있지만, 특히 작은 프로그램과 작은 메모리를 사용하는 H5에서는 여전히 매개변수 수를 제어해야 합니다. 성능이 낮은 플랫폼에서는 애플리케이션 성능과 안정성을 향상시키기 위해 불필요한 매개변수 전송을 최소화해야 합니다. 🎜🎜(3) 매개변수 데이터 유형을 고려해야 합니다.🎜🎜라우팅 주소를 사용하여 매개변수를 전달하는 경우 모든 매개변수를 문자열 형식으로 변환해야 합니다. 따라서 대상 페이지에서 매개변수를 얻은 후 숫자 및 부울과 같은 일부 데이터 유형을 사용합니다. 데이터 유형 변환이 필요한 경우에 사용해야 합니다. 🎜🎜간단히 말하면, 유니앱 개발 시 점프 페이지에서 많은 수의 매개변수를 전송하는 문제는 라우팅 주소를 이어붙이는 것으로 해결할 수 있지만, 개발자는 여전히 전달되는 매개변수의 사양, 개수, 데이터 유형에 주의를 기울여야 합니다. 🎜

위 내용은 uniapp 점프 페이지는 많은 수의 매개변수를 전달합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.