Maison interface Web uni-app Comment encapsuler la méthode de saut dans Uniapp

Comment encapsuler la méthode de saut dans Uniapp

Apr 25, 2023 am 10:48 AM

Dans le processus de développement d'applications Uniapp, vous devez souvent accéder à différentes pages, telles que la page de connexion, la page du centre personnel, etc. Afin de faciliter le développement, nous pouvons encapsuler une méthode de saut pour gérer uniformément les sauts de page. Cet article explique comment encapsuler la méthode de saut dans uniapp.

1. Encapsuler la méthode de saut

  1. Créez un nouveau fichier util.js pour stocker la méthode encapsulée et définissez une méthode nommée naviguerTo dans le fichier. Cette méthode reçoit deux paramètres, le premier paramètre est le chemin de la page cible et le deuxième paramètre correspond aux données qui doivent être transmises. Parmi eux, le paramètre path est obligatoire et les données sont facultatives.
// util.js

export function navigateTo(url, data = {}) {
  uni.navigateTo({
    url: `${url}?${getObjectKeys(data)
      .map(key => `${key}=${data[key]}`)
      .join('&')}`
  });
}

function getObjectKeys(obj) {
  return Object.keys(obj);
}
Copier après la connexion
  1. Dans la méthode, nous utilisons getObjectKeys pour obtenir tous les noms de clés dans l'objet de données, puis utilisons les méthodes map et join pour fusionner les paires clé-valeur en une chaîne. Nous pouvons brièvement présenter les méthodes map et join ici :

 La méthode map() crée un nouveau tableau, et le résultat est le résultat renvoyé après avoir appelé une fonction fournie pour chaque élément du tableau.

 La méthode join() convertit tous les éléments du tableau (s'il s'agit d'une chaîne, affichez-la directement ; s'il s'agit d'un tableau ou d'un objet, convertissez-le en chaîne) en une chaîne, puis concaténez la chaîne en une seule. chaîne. Et vous pouvez spécifier une chaîne comme séparateur pour séparer les éléments du tableau.

  1. Enfin, nous exportons cette méthode pour l'utiliser par d'autres modules.

2. Utilisez la méthode de saut encapsulé

  1. Là où vous devez accéder à la page cible, appelez la méthode encapsuléenavigaTo.
//index.vue

import { navigateTo } from '@/utils/util.js';

// 模拟获取用户登录状态
const isLogin = true;

export default {
  methods: {
    goLogin() {
      if (!isLogin) {
        navigateTo('/pages/login/login'); // 跳转到登录页面
      } else {
        navigateTo('/pages/personal/personal'); // 跳转到个人中心页面
      }
    }
  }
}
Copier après la connexion
  1. Dans l'exemple ci-dessus, nous déterminons si l'utilisateur est connecté en fonction de la valeur de isLogin. S'il n'est pas connecté, il accédera à la page de connexion. S'il est connecté, il accédera à la page du centre personnel. .

À ce stade, nous avons réussi à encapsuler une méthode de saut et à l'utiliser dans d'autres composants. De cette façon, nous pouvons éviter la confusion du code causée par une logique complexe de saut de page et améliorer la lisibilité et la maintenabilité du code.

3. Optimisation de la méthode

Bien que nous ayons encapsulé la méthode de saut, elle n'est pas parfaite et présente encore quelques défauts. Par exemple, si la page cible doit transmettre plusieurs paramètres, nous devons fusionner manuellement les paramètres, ce qui est plus gênant. Afin de résoudre ce problème, nous pouvons optimiser la méthode d’emballage.

  1. Passez les paramètres dans un objet :
// index.vue

export default {
  methods: {
    goDetail() {
      navigateTo('/pages/detail/detail', {
        id: 123,
        name: 'uniapp封装跳转方法'
      });
    }
  }
}
Copier après la connexion
  1. Modifiez la méthode naviguerTo, utilisez JSON.stringify() pour convertir l'objet paramètre en une chaîne json, puis encodez-le et transmettez-le à la page cible comme valeur de la chaîne de requête :
// util.js

export function navigateTo(url, data = {}) {
  uni.navigateTo({
    url: `${url}?data=${encodeURIComponent(JSON.stringify(data))}`
  });
}
Copier après la connexion
  1. Une fois que la page cible a obtenu les paramètres, utilisez JSON.parse() pour les convertir en objets js :
// detail.vue

export default {
  onLoad(options) {
    this.queryParams = JSON.parse(decodeURIComponent(options.data));
  }
}
Copier après la connexion

À ce stade, nous avons optimisé la méthode de saut pour transmettre rapidement plusieurs paramètres et commodément.

En bref, l'encapsulation de la méthode jump peut non seulement améliorer la lisibilité et la maintenabilité du code, mais également simplifier davantage l'écriture du code. J'espère que cet article pourra vous aider à mieux apprendre et utiliser Uniapp.

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 de ce site Web
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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Quels sont les différents types de tests que vous pouvez effectuer dans une application UNIAPP? Quels sont les différents types de tests que vous pouvez effectuer dans une application UNIAPP? Mar 27, 2025 pm 04:59 PM

L'article traite de divers types de tests pour les applications UNIAPP, y compris l'unité, l'intégration, les tests fonctionnels, UI / UX, les performances, la plate-forme multiplateforme et la sécurité. Il couvre également une compatibilité multiplateforme et recommande des outils comme JES

Quels outils de débogage sont disponibles pour le développement UNIAPP? Quels outils de débogage sont disponibles pour le développement UNIAPP? Mar 27, 2025 pm 05:05 PM

L'article traite des outils de débogage et des meilleures pratiques pour le développement de l'UNIAPP, en se concentrant sur des outils comme HBuilderx, WeChat Developer Tools et Chrome Devtools.

Comment pouvez-vous réduire la taille de votre package d'application UNIAPP? Comment pouvez-vous réduire la taille de votre package d'application UNIAPP? Mar 27, 2025 pm 04:45 PM

L'article traite des stratégies pour réduire la taille du package UNIAPP, en se concentrant sur l'optimisation du code, la gestion des ressources et les techniques comme le fractionnement du code et le chargement paresseux.

Comment pouvez-vous optimiser les images pour les performances Web à UniApp? Comment pouvez-vous optimiser les images pour les performances Web à UniApp? Mar 27, 2025 pm 04:50 PM

L'article discute de l'optimisation des images dans UniaPP pour de meilleures performances Web par compression, conception réactive, chargement paresseux, mise en cache et utilisation du format WebP.

Comment pouvez-vous utiliser le chargement paresseux pour améliorer les performances? Comment pouvez-vous utiliser le chargement paresseux pour améliorer les performances? Mar 27, 2025 pm 04:47 PM

Le chargement paresseux dépasse les ressources non critiques pour améliorer les performances du site, réduire les temps de chargement et l'utilisation des données. Les pratiques clés incluent la priorité au contenu critique et l'utilisation d'API efficaces.

Quels sont les modèles communs pour gérer des structures de données complexes dans UNIAPP? Quels sont les modèles communs pour gérer des structures de données complexes dans UNIAPP? Mar 25, 2025 pm 02:31 PM

L'article discute de la gestion des structures de données complexes dans l'UNIAPP, en se concentrant sur des modèles tels que Singleton, Observer, Factory et State, et des stratégies pour gérer les changements d'état de données à l'aide de l'API de composition Vuex et Vue 3.

Comment UniApp gère-t-il la configuration et le style global? Comment UniApp gère-t-il la configuration et le style global? Mar 25, 2025 pm 02:20 PM

UniApp gère la configuration globale via Manifest.json et le style via app.vue ou app.scss, en utilisant Uni.scss pour les variables et les mixins. Les meilleures pratiques incluent l'utilisation de SCSS, de styles modulaires et de conception réactive.

Quelles sont les propriétés calculées à UniApp? Comment sont-ils utilisés? Quelles sont les propriétés calculées à UniApp? Comment sont-ils utilisés? Mar 25, 2025 pm 02:23 PM

Les propriétés calculées de l'UNIAPP, dérivées de Vue.js, améliorent le développement en fournissant une gestion des données réactive, réutilisable et optimisée. Ils mettent automatiquement à jour lorsque les dépendances changent, offrant des avantages de performance et simplifiant la gestion de l'État

See all articles