小程序里的跳转,表面看只是点一下,但同一个动作在不同场景下,用到的 API、组件和配置可能完全不一样。如果一开始选错了实现方式,轻则返回路径混乱,重则链接根本打不开。所以动手之前,最好先想清楚要跳到哪、需不需要返回,再选择对应方案。
如果只是在小程序内部跳转,常用的是几个导航 API。从列表页进详情页这种场景,适合用 wx.navigateTo。它会把新页面压在当前页上方,用户点返回时还能回到原来的位置,调用时把目标页路径传给 url 即可,比如 wx.navigateTo({url: '../targetPage/targetPage'})。如果某个页面用完就不该再被返回,比如登录成功后进首页,可以用 wx.redirectTo,它会直接替换当前页面,登录页不会留在返回栈里。需要清空整个页面栈时,比如退出登录、切换账号,就用 wx.reLaunch,它会关闭所有页面再打开目标页。还有 wx.switchTab,专门用来处理 tabBar 页面跳转,因为 tab 页的切换逻辑和普通页面不同,前面几个 API 在这里不适用。
除了在 JS 里调用这些 API,也可以直接在 WXML 里放一个 组件,通过 url 属性指定目标页面路径。像列表项点击跳详情这种固定入口,用组件写会更直观,不用额外绑定事件。

从小程序跳到外部 H5,不像普通浏览器那样能随意打开网页。微信提供 web-view 组件来承载外部链接,但前提是目标域名要先配置成业务域名。配置入口在小程序管理后台的“开发设置”里,添加后还要下载校验文件,放到对应域名的根目录。有个细节容易踩坑:不要勾选“不校验合法域名”,否则线上环境反而可能跳转失败。配置完成后,页面里放 ,src 可以在 JS 里动态赋值,方便按业务需要切换具体链接。

从当前小程序跳到另一个小程序,也有两种常见做法。一种是在目标小程序后台设置一个唯一的 URL Scheme,在当前小程序里通过拼接这个 Scheme 来触发跳转,比较适合通过链接、二维码等场景进入。另一种是直接调用 wx.navigateToMiniProgram,把目标小程序的 appId、路径 path,以及需要传递的 extraData 一起传进去。调用后微信会打开目标小程序,用户就能继续操作。
实际开发中,路径写错、业务域名配置不完整、目标小程序权限没拿到,是最容易出问题的几个地方。不同版本的基础库和平台政策也可能调整,具体实现最好以最新的官方文档为准。把这几类跳转的差异捋清楚,剩下的其实就是按场景选对工具。
지금 로그인