做微信小程序时,页面跳转看起来很简单,真正上手却很容易卡住。比如按钮明明可以点,点了以后页面却没有任何反应,这时候不一定是交互没做好,更多时候是跳转路径写错了,或者目标页面没有登记进小程序的页面列表。
比较稳妥的做法,是先从入口开始搭。不管是一个普通按钮,还是页面顶部的一块导航区域,都可以在 wxml 里做成可点击的元素,再给它绑定一个点击事件,比如 bindtap。然后打开对应的 js 文件,在事件函数里调用 wx.navigateTo,把要去的页面路径传进去,跳转的基本链路就搭好了。
这里有一个很关键的细节:小程序里并不是只要写了文件,就能当成页面打开。真正能被跳转到的页面,一般都要在 app.json 的 pages 数组里声明。也就是说,哪怕目标页面的目录、wxml 和 js 都已经建好了,只要没有写进 pages,小程序也可能无法正确识别它。等项目里的页面越来越多时,路径最好统一维护,别东一处、西一处,否则后面排查问题会麻烦不少。
跳转方式也可以根据具体场景来选。wx.navigateTo 打开的是新页面,当前页面通常还会保留,用户之后可以返回;如果只是想替换当前页面,不想再保留返回入口,可以考虑 redirectTo;如果希望清空当前页面栈,直接落到某个指定入口,reLaunch 会更合适。实际开发里,不必把所有点击都做成同一种跳转,顺着用户的使用动线来安排,体验会更自然。
目标页面打开以后,也不能只放内容,返回入口同样要顾上。最基础的做法,是加一个返回按钮,方便用户看完内容或者点错时能退出来。根据业务需要,还可以放继续浏览、返回列表、查看详情等其他入口。这些元素不一定复杂,但能明显减少用户卡在某个页面出不来的感觉。

小程序跳转这件事本身并不复杂,真正影响体验的,是几个细节有没有做扎实:入口能不能找到,路径有没有写对,目标页面有没有声明,返回是否顺手。把这些理顺,用户用起来就会舒服很多。

Se Connecter Maintenant