小程序不需要单独下载,点开就能用,所以经常出现在活动页、内容展示和交易链路里。页面之间的跳转,例如从列表进详情、从活动页进落地页,几乎是每个项目都会碰到的基础需求。功能本身不复杂,但实现时确实有几处配置容易漏掉。
通常先在页面结构里放一个跳转入口。比较常见的做法是在 wxml 里写一个按钮,绑定 bindtap 事件,比如“查看详情”,点击后触发对应的处理函数。也可以直接用 navigator 组件,但按钮事件更灵活,后面要加判断、埋点或参数处理都更方便。
入口有了,就去对应页面的 js 文件里写跳转动作。给刚才绑定的函数加上 wx.navigateTo,这个方法接收一个对象参数,url 用来指定目标页面路径,格式一般是 /pages/xxx/xxx。路径要写完整,并且和 app.json 里登记的一致,不然会跳转失败。wx.navigateTo 适合跳转非 tabBar 页面,跳过去之后顶部会有返回入口,用户可以回到原来的页面。
不过只写跳转代码还不够,全局注册是最容易忘的一步。打开 app.json,把目标页面路径加进 pages 数组。很多人跳转逻辑写好了,却忘了登记页面,一点按钮就报“页面不存在”。pages 数组里每一项都是一个页面路径,新增页面时补进去就行。小程序启动时默认打开数组里的第一项,后面的路径只是作为可访问页面存在。

到了目标页面,也不要让用户走到底就卡住。可以在 wxml 里放一个返回按钮,绑定 wx.navigateBack,回到上一页;如果这个页面还要继续跳去其它页面,也可以再放按钮或 navigator 组件。这样整条路径才顺畅。

实际开发中还有两个小点值得留意。一是如果目标页面是 tabBar 页面,wx.navigateTo 是不生效的,需要改用 wx.switchTab;二是 wx.navigateTo 会不断叠加页面栈,连续跳转层级太深时可能触发限制。一般场景下按上面的流程配置,基本不会有太大问题。
整体来看,跳转功能的核心就是页面注册、路径匹配和事件绑定这三点。把这几处核对清楚,小程序内的跳转链接很容易就能跑通,后续再加参数传递或分支逻辑也会顺手很多。
立即登入