uni.reLaunch(关闭所有页面,打开应用内的指定页面)
代码示例
jsuni.reLaunch({ url: '/pages/index/index' })缺点:uni.reLaunch 会关闭所有页面,打开到应用内的某个页面。这会清空页面栈,然后将目标页面放入栈中。因此,使用 reLaunch 后,页面栈中只有新页面,此时使用 navigateBack 将无法回退到之前的页面,因为页面栈已经被清空
uni.navigateTo(跳转到某个页面,再navigateBack跳回来)
代码示例
jsuni.navigateTo({ url: '/pages/index/index', success: () => { uni.navigateBack() } })缺点:实际上页面跳转可能需要一个时间周期,所以这种操作可能会导致一些意外行为。例如,如果当前页面是A,执行 navigateTo 到B,然后立即 navigateBack,理论上会回到A,但是否能正确回退取决于跳转和回退的时机。如果跳转动画尚未完成就执行回退,可能会产生页面闪烁或跳转失败。另外,如果页面B需要加载数据,则回退后B页面可能仍然被保留在页面栈中,但用户看不到,这可能会引起状态不一致。
uni.redirectTo(关闭当前页面,跳转到指定页面)
代码示例
jsuni.redirectTo({ url: '/pages/index/index' })特点:uni.redirectTo 会关闭当前页面,跳转到应用内的某个页面。这样,页面栈中会用新页面替换当前页面,而不会增加页面栈的深度。因此,使用 redirectTo 后,页面栈中的页面数量不变,只是当前页面被替换了。这时使用 navigateBack 会回退到上一个页面,不会造成页面栈混乱。
window.location.reload()(H5环境适用)
代码示例
jswindow.location.reload()
this.$forceUpdate()(刷新子组件)
代码示例
jsthis.$forceUpdate();缺点:在uniapp中,调用可以迫使组件实例重新渲染,即强制刷新。但注意它仅仅影响实例本身和插入插槽内容的子组件,而不是所有子组件。