小程序声明式跳转与编程式跳转

小程序的声明式跳转与编程式跳转

首先很通俗的理解声明式跳转就是使用标签实现页面的跳转,编程式跳转就是用js去实现跳转。(本文以微信小程序开发者工具为例,换汤不换药的东西就不一一列举了)

声明式跳转:

声明式跳转使用navigate标签,它的open-type属性可以根据值的不同去实现不同效果的跳转

功能代码示例
navigate保留当前页,跳转到非 tabbar 页面<navigator url='pages/detail/detail' > 点击跳转</navigator>
redirect关闭当前页,跳转到非 tabbar 页面<navigator url='pages/detail/detail' open-type='redirect' > 点击跳转</navigator>
switchTab跳转到 tabbar 页面,关闭所有非 tabbar 页面<navigator url='pages/home/home' open-type='switchTab'> 点击跳转</navigator>
reLaunch关闭所有页面,跳到某个页面<navigator url='pages/detail/detail' open-type='reLaunch'> 点击跳转</navigator>
navigateBack关闭当前页,返回到上一级或多级页面,delta属性指定返回的层数<navigator open-type='navigateBack' delta='1'> 点击返回</navigator>
exittarget属性值miniProgram时,实现退出小程序<navigator open-type='exit' target='miniProgram'> 点击退出</navigator>

编程式跳转:

编程式跳转使用不同的api 实现不同效果的跳转

api功能api参数
wx.navigateTo(Object object)保留当前页,跳转到非 tabbar 页面url:需要跳转的路径(字符串) success: 成功回调 ;fail:失败回调 complete:结束回调(不管成功失败都会调用)
wx.redirectTo(Object object)关闭当前页,跳转到非 tabbar 页面url:需要跳转的路径(字符串) success: 成功回调 ;fail:失败回调 complete:结束回调(不管成功失败都会调用
wx.switchTab(Object object)跳转到 tabbar 页面,关闭所有非 tabbar 页面url:需要跳转的路径(字符串) success: 成功回调 ;fail:失败回调 complete:结束回调(不管成功失败都会调用
wx.reLaunch(Object object)关闭所有页面,跳到某个页面url:需要跳转的路径(字符串) success: 成功回调 ;fail:失败回调 complete:结束回调(不管成功失败都会调用
wx.navigateBack(Object object)关闭当前页,返回到上一级或多级页面,delta属性指定返回的层数delta:需要返回的层数(number 若大于已有页面则返回到首页) success: 成功回调 ;fail:失败回调 complete:结束回调(不管成功失败都会调用

代码示例:

<view><button bindtap="btn">去详情页</button></view>
 
btn: function () {
    wx.navigateTo({
      url: '/pages/detail/detail',
      //成功回调
      success:function(res){
      
      }//失败回调
      /*fail:function(err){
      
      },*/
      //结束始终调用
      complete:function(res){
      
      }
      
    })
  }

如果是返回则把 url 换成 delta 给正确的值即可

两种跳转方式相比较,声明式更加注重于想要得到什么,编程式更注重于怎样去做,声明式让你的代码结构更加清晰,而编程式让执行步骤更加清晰。

(天天宅在家里属实难受,作为刚看到前端大门的菜鸟,逆境中也得战斗)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值