---
title: "为什么 wx.rewriteRoute 不像 navigateTo 一样可以直接调用，而是要放在监听的回调中？"
id: "a3b5cb1b54b323ed"
typeName: "小程序-开发-指南"
utime: "2026-07-23 20:26:27"
---

# 为什么 wx.rewriteRoute 不像 navigateTo 一样可以直接调用，而是要放在监听的回调中？

因为相比于 `wx.navigateTo` 是一次路由请求，对应的 `navigateTo` 是一种路由事件类型，`wx.rewriteRoute` 实际上并不是一种路由类型，它的作用是对一次已经存在的路由事件进行一些操作。`onBeforeAppRoute` 监听会在路由事件下发时触发，只有在这个回调中，才能准确地对路由事件进行判断和处理，因此 `wx.rewriteRoute` 必须放在 `wx.onBeforeAppRoute` 的回调中同步调用。

## 相关文档

- [路由事件重写](/miniprogram/dev/framework/app-service/route-rewrite.md)
