干货!小程序之页面路由知识总结

今天这篇文章给大家总结一下微信小程序之页面路由相关的知识,路由是指分组从源到目的地时,决定端到端路径的网络范围的进程,下面就一起来看一下,希望对大家有帮助。


干货!小程序之页面路由知识总结



小程序之页面路由知识总结


路由之含义:


路由(routing)是指分组从源到目的地时,决定端到端路径的网络范围的进程。我们可以理解微信小程序页面路由,根据路由规则(路径)从一个页面跳转到另一个页面的的规则。


一、哪些会触发页面跳转


小程序启动,初始化第一个页面


跳转新页面,调用wx.navigateTo 或者 <navigator />


页面重定向,调用wx.redirectTo 或者 <navigator />


页面返回,调用wx.navigateBack ,页面左上角返回按钮


wx.switchTab实现tabBar页面切换


Tips: 所有页面都必须在app.json中注册,例如


{
    "pages": [
        "pages/index/index",
        "pages/classification/classification",
        "pages/start/start",
        "pages/detail/detail",  
    ]
}


二、微信小程序中实现页面路由的几种方式


wx.navigateTo,保留当前页面,跳转到应用内的某个页面,但是不能跳到 tabbar 页面


wx.navigateTo({
  url: 'pages/detail/detail',
  success: function(res) {},
  ...
})


wx.redirectTo,关闭当前页面,跳转到应用内的某个页面,但是不允许跳转到 tabbar 页面


wx.redirectTo({
  url: 'pages/detail/detail',
  success:function(res){},
  ...
})


<navigator />组件跳转方式


<navigator url=pages/detail/detail">跳转</navigator>


wx.navigateBack返回上一页


wx.navigateBack({
    delta: 1,
})


Tips: delta为1时表示返回上一页,为2时表示上上一页,以此类推;如果dalta大于已打开的页面总数,则返回到首页。返回后,元界面会销毁


wx.switchTab跳转到 tabBar 页面,并关闭其他所有非 tabBar 页面


app.json:


{
  "tabBar": {
    "list": [{
        "pagePath": "pages/index/index",
        "text": "首页",
    },
    {
        "pagePath": "pages/car/car",
        "text": "购物车",
      },
   ...
  }
}
index.js:
wx.switchTab({
  url: 'pages/car/car'
})


三、小程序路由实现原理


小程序路由是通过自己实现的一个栈(先进先出)来管理的。


当我们通过wx.navigateTo或者<navigator/>从A页面跳转到B页面时。路由栈的变化是这样的。


从A页面跳转到B页面时


路由栈刚开始只存有页面A,当使用wx.navigateTo跳转后,页面B推入路由栈并展示到界面上,页面A隐藏。


当我们使用wx.navigateBack返回时


使用wx.navigateBack返回


那么wx.redirectTo与wx.navigateTo有什么区别呢?


假如当前已经在二级页面B上,我们使用wx.redirectTo跳转到C页面,其过程是这样的。


使用wx.redirectTo跳转到C页面


如当前已经在二级页面B上,我们使用wx.redirectTo跳转到C页面,其过程是这样的。


[外链图片转存中…(img-mkPnbKug-1650431194878)]


页面B会被pop出,然后C页面再push进入栈,这个时候栈中还是只有两个页面。




我来说两句

0 条评论

推荐阅读

  • 响应式布局CSS媒体查询设备像素比介绍

    构建响应式网站布局最常见的是流体网格,灵活调整大小的站点布局技术,确保用户在使用的幕上获得完整的体验。响应式设计如何展示富媒体图像,可以通过以下几种方法。

    admin
  • 提升网站的性能快速加载的实用技巧

    网站速度很重要,快速加载的网站会带来更好的用户体验、更高的转化率、更多的参与度,而且在搜索引擎排名中也扮演重要角色,做SEO,网站硬件是起跑线,如果输在了起跑线,又怎么跟同行竞争。有许多方法可提升网站的性能,有一些技巧可以避免踩坑。

    admin
  • 织梦CMS TAG页找不到标签和实现彩色标签解决方法

    织梦cms是我们常见的网站程序系统的一款,在TAG标签中常常遇到的问题也很多。当我们点击 tags.php 页的某个标签的时候,有时会提示:“系统无此标签,可 能已经移除!” 但是我们检查程序后台,以及前台显示页面。这个标签确实存在,如果解决这个问题那?

    admin
  • HTML关于fieldset标签主要的作用

    在前端开发html页面中常用的标签很多,今天为大家带来的是关于HTML中fieldset标签主要的作用说明,根据技术分析HTML

    admin

精选专题