18-uniapp路由与页面跳转

388 阅读1分钟

[微信小程序和uniapp的路由命名是一样的]

不一样的就是微信的路由跳转是wx.xxxxx,uniapp的路由方法命名是uni.xxxxx,就这点区别

[写一个跳转:]

通过navigator跳转,标签就是navigator,要想通过其他标签跳转路由,就可以写一个点击事件,在点击事件方法里面调用uni.navigateTo(OBJECT)方法实现跳转

两种方法跳转:点击路由标签能跳,点击红色盒子也能跳

<navigator url="/pages/demo2/demo2">跳转到demo2</navigator>
<view class="" style="width: 200rpx; height: 200rpx; background: hotpink;" @click="goDemo2"></view>

这是跳转方法

    methods:{
      goDemo2 (){
        uni.navigateTo({
          url:"/pages/demo2/demo2"
        })
      }
    }

点击文字和粉色盒子都能跳转 image.png

给上面的跳转方法写一个成功后的回调函数,success是uni.navigateTo自带的属性

    methods:{
      goDemo2 (){
        uni.navigateTo({
          url:"/pages/demo2/demo2",
          success:res=>{
            console.log(res);
          }
        })
      }
    }

image.png

uni.redirectTo跳转

这个方法是不保留前一个页面,跳转到下一个页面,上面的navigateTo跳转是保留前一个页面跳转的,区别就在于,redirectTo跳转后,页面上方没有返回上一个页面的箭头了

上面这两种方法都不能跳转到tabbar页面,只能跳转到其他页面,下面的reLaunch可以跳转到tabbar页面去

uni.reLaunch(OBJECT)和uni.switchTab(OBJECT)

关闭所有页面,打开到应用内的某个页面。relaunch能携带参数,switchTab不能携带参数

uni.navigateBack(OBJECT)

返回上一个页面,getCurrentPages() 获取当前的页面栈,用来获取当前一共打开了多少页面

<template>
  <view>
    <view class="" @click="goBack">返回上一页</view>
  </view>
</template>

<script>
  export default {
    data() {
      return {
        
      };
    },
    methods:{
      goBack(){
        uni.navigateBack(1)
      }
    }
  }
</script>

<style lang="scss">

</style>