Maison >interface Web >uni-app >Comment gérer le routage et la navigation dans Uni-App?
Uni-App utilise un système de routage relativement simple basé sur sa propre API de navigation. Au lieu de compter sur le routage traditionnel basé sur le navigateur comme React Router ou Vue Router, Uni-App gère la navigation en interne. Cela signifie que vous interagissez principalement avec la navigation en utilisant les méthodes fournies par le cadre. La méthode principale est uni.navigateTo()
, qui pousse une nouvelle page sur la pile de navigation. D'autres méthodes incluent uni.redirectTo()
, qui remplace la page actuelle, uni.reLaunch()
, qui ferme toutes les pages et en ouvre une nouvelle, et uni.navigateBack()
, qui fait éclater une page de la pile. Ces méthodes sont asynchrones et renvoient une promesse, vous permettant de gérer le succès ou l'échec. Les pages elles-mêmes sont définies dans votre fichier pages.json
, répertoriant le chemin d'accès à chaque composant VUE qui représente une page. Par exemple, pour naviguer vers une page nommée 'Détail' située à pages/detail/detail.vue
, vous utiliseriez uni.navigateTo({ url: '/pages/detail/detail' })
. L'URL est relative au répertoire pages
. De plus, Uni-App prend en charge la navigation sur la barre d'onglet, vous permettant de créer des applications avec plusieurs onglets de navigation inférieurs, chacun conduisant à un ensemble différent de pages. Ceci est également configuré dans pages.json
, spécifiant quelles pages appartiennent à quel onglet.
Plusieurs meilleures pratiques améliorent la maintenabilité et l'expérience utilisateur de votre navigation UNI-App:
uni.navigateTo()
pour la plupart des cas: Bien qu'il existe d'autres méthodes de navigation, hiérarchisez uni.navigateTo()
pour la plupart des scénarios. Cela préserve l'historique de navigation, permettant aux utilisateurs de revenir facilement. Réserve uni.redirectTo()
et uni.reLaunch()
pour des situations spécifiques où vous souhaitez remplacer complètement la page actuelle ou effacer la pile de navigation.uni.setStorageSync()
: Pour un transfert de données simple, utilisez des paramètres URL. Cependant, pour les données plus grandes ou sensibles, exploitez uni.setStorageSync()
pour stocker les données de manière persistante entre les pages. Évitez de passer de grandes quantités de données directement via des paramètres d'URL, car il peut avoir un impact sur les performances et la longueur de l'URL..then()
et .catch()
pour gérer gracieusement les défaillances de navigation potentielles. Cela rend votre application plus robuste.Uni-App propose plusieurs façons de passer des données entre les pages pendant la navigation:
uni.navigateTo({ url: '/pages/detail/detail?id=123&name=John' })
. Vous pouvez ensuite accéder à ces paramètres dans la page cible à l'aide d' uni.getCurrentPages()[uni.getCurrentPages().length - 1].options
.uni.navigateTo()
avec l'option data
: Pour des données plus complexes, vous pouvez transmettre un objet via l'option data
dans uni.navigateTo()
. Ces données seront accessibles dans le crochet de cycle de vie onLoad
de la page cible. Par exemple: uni.navigateTo({ url: '/pages/detail/detail', data: { user: { id: 123, name: 'John' } } })
. Accédez aux données dans la page de détail en utilisant this.$page.data
.uni.setStorageSync()
: Pour les données persistantes qui doivent être accessibles sur plusieurs pages ou même après la navigation, utilisez uni.setStorageSync()
pour stocker des données dans le stockage local de l'application. Récupérez-le à l'aide d' uni.getStorageSync()
. Cette méthode convient aux ensembles de données ou aux données plus importants qui doivent persister au-delà d'une seule instance de navigation. N'oubliez pas d'effacer le stockage lorsque les données ne sont plus nécessaires.pages.json
et assurez-vous qu'ils reflètent avec précision la structure de fichiers de vos pages. Les fautes de frappe ou les incohérences peuvent entraîner des erreurs de navigation.uni.reLaunch()
: Bien que utile pour des scénarios spécifiques, la surutilisation uni.reLaunch()
peut avoir un impact négatif sur l'expérience utilisateur en perturbant l'historique de la navigation et en rendant difficile la navigation..then()
et .catch()
.data
uni.navigateTo()
ou uni.setStorageSync()
.uni.setStorageSync()
, n'oubliez pas d'effacer le stockage lorsque les données ne sont plus nécessaires. Laisser des données inutiles en stockage peut consommer un espace inutile et potentiellement entraîner un comportement inattendu.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!