À propos de l'utilisation par Uni-App du routage de navigation et des sauts de page
- 1. Naviguer vers le saut de page
-
- 1.Description de l'attribut
- 2. valeurs valides de type ouvert (couramment utilisées)
- 3. Concernant la limite de longueur des URL (solution : [Page Communication](https://uniapp.dcloud.net.cn/tutorial/page.html#%E9%A1%B5%E9%9D%A2%E9%80% 9A%E8%AE%AF), [variable globale](https://ask.dcloud.net.cn/article/35021), encodeURIComponent)
- `3.Remarque` :
- 2. Saut d'itinéraire (saut programmatique)
a
Semblable aux balises en HTML ,
1. Naviguer vers le saut de page
1.Description de l'attribut
Nom d'attribut | taper | valeur par défaut | illustrer | Avis | Différences de plateforme |
---|---|---|---|---|---|
URL | Chaîne | Accédez à l'application, la valeur est un chemin absolu ou un chemin relatif, tel que : '…/login/login' ou '/pages/login/login' | Vous ne pouvez pas ajouter .vue de suffixe, sinon le saut ne réussira pas. |
||
Type ouvert | Chaîne | naviguer | Méthode de saut | ||
delta | Nombre | 1 | Valable lorsque le type d'ouverture est « navigateBack », indiquant le nombre de couches à restaurer | ||
classe de vol stationnaire | Chaîne | survol du navigateur | Spécifiez la classe de style lorsque vous cliquez dessus. Il n'y aura aucun effet de clic lorsque hover-class="none" est défini. |
2. valeurs valides de type ouvert (couramment utilisées)
valeur | illustrer | illustrer | Différences de plateforme expliquées |
---|---|---|---|
naviguer | Correspondant à la fonction de uni.navigateTo | Aller à la page | |
réorienter | Fonction correspondante de uni.redirectTo | Ouvrir sur la page actuelle | |
switchTab | Correspond à la fonction de uni.switchTab | Aller à la page à onglet | |
relancer | Correspondant à la fonction d'uni.reLaunch | Les mini-programmes ByteDance et Feishu ne sont pas pris en charge | |
naviguerRetour | Correspond à la fonction de uni.navigateBack |
3. À propos de la limite de longueur de l'URL (solution : communication de page , variables globales , encodeURIComponent)
<navigator :url="'/pages/navigate/navigate?item='+ encodeURIComponent(JSON.stringify(item))"></navigator>
// navigate.vue页面接受参数
onLoad: function (option) {
const item = JSON.parse(decodeURIComponent(option.item));
}
3.注意
:
-
Page de saut
tabbar
, doit être définieopen-type="switchTab"
-
navigator-hover
Par défaut{background-color: rgba(0, 0, 0, 0.1); opacity: 0.7;}
,<navigator>
la couleur d'arrière-plan des nœuds enfants doit être transparente. -
navigator-open-type
Si l'attribut utilise la valeur correspondante, la fonction de la valeur correspondante高于
correspondra跳转路径
. -
app-nvue
La plateforme n'est supportée que par des projets nvue purs (render为native
)<navigator>
. Si le rendu n'est pas natif, nvue ne prend pas en charge le composant navigateur, veuillez utiliserAPI
jump. -
Pour quitter l'application sous app, vous pouvez utiliser plus.runtime.quit sur la plateforme Android. iOS n'a aucune idée de quitter une application.
-
uLink
navigator组件
Oui , le composant est增强版
souligné dans le style. Fonctionnellement, il prend en charge l'ouverture de pages Web en ligne, les schémas d'autres applications, l'envoi d'e-mails via mailto et les appels via tél. -
En raison de la nécessité de SSR dans le projet Vue3, l'extrémité H5 imbriquera la balise a dans la couche externe.
2. Saut d'itinéraire (saut programmatique)
1.navigateTo
Conservez la page actuelle, accédez à une page de l'application et utilisez-la uni.navigateBack
pour revenir à la page d'origine.
url
Les paramètres transmis onLoad
sont reçus pendant le cycle de vie
//在起始页面跳转到test.vue页面并传递参数
uni.navigateTo({
url: 'test?id=1&name=uniapp'
});
// 在test.vue页面接受参数
export default {
onLoad: function (option) {
//option为object类型,会序列化上个页面传递的参数
console.log(option.id); //打印出上个页面传递的参数。
console.log(option.name); //打印出上个页面传递的参数。
}
}
// 在起始页面跳转到test.vue页面,并监听test.vue发送过来的事件数据
uni.navigateTo({
url: 'pages/test?id=1',
events: {
// 为指定事件添加一个监听器,获取被打开页面传送到当前页面的数据
acceptDataFromOpenedPage: function(data) {
console.log(data)
},
someEvent: function(data) {
console.log(data)
}
...
},
success: function(res) {
// 通过eventChannel向被打开页面传送数据
res.eventChannel.emit('acceptDataFromOpenerPage', {
data: 'data from starter page' })
}
})
// 在test.vue页面,向起始页通过事件传递数据
onLoad: function(option) {
const eventChannel = this.getOpenerEventChannel();
eventChannel.emit('acceptDataFromOpenedPage', {
data: 'data from test page'});
eventChannel.emit('someEvent', {
data: 'data from test page for someEvent'});
// 监听acceptDataFromOpenerPage事件,获取上一页面通过eventChannel传送到当前页面的数据
eventChannel.on('acceptDataFromOpenerPage', function(data) {
console.log(data)
})
}
2. Redirection vers une nouvelle page (redirectTo)
Fermez la page actuelle et accédez à une page de l'application.
<!-- template -->
<button type="primary" @click="goMessage">跳转到message页面</button>
<!-- js -->
<script>
goMessage () {
uni.switchTab({
url: '/pages/message/message'
})
}
</script>
3. Accédez à la page tabBar (switchTab)
注意:
navigateTo, redirectTo
Seules 非 tabBar
les pages peuvent être ouvertes.
switchTab
Seules tabBar
les pages peuvent être ouvertes.
reLaunch
La page peut être ouverte 任意
.
Le bas de la page tabBar
est déterminé par la page, c'est-à-dire que tant qu'il est défini comme tabBar
une page, il sera en bas tabBar
. Les sauts de page
ne peuvent pas être effectués dans . Ensuite, la pile de pages disparaîtra et vous ne pourrez pas y revenir pour le moment. Si vous devez revenir, vous pouvez utiliser la navigation vers d'autres enregistrements d'historique du navigateur. App.vue
H5端页面刷新
navigateBack
history.back()