uniapp 刷新当前页面
文章目录
一、 使用uni.reLaunch方法(关闭所有页面,打开到应用内的某个页面) bug 是 无法返回 <
uni.reLaunch({
url: '/pages/index/index'
})
二、使用uni.navigateTo方法(保留当前页面,跳转到应用内的某个页面)bug 是 参数获取不到了 _
uni.navigateTo({
url: '/pages/video/index',
success: () => {
uni.navigateBack()
}
})
success参数指定跳转成功后的回调函数,在回调函数中,调用uni.navigateBack方法,从而实现强制刷新当前页面的目的。 uni.navigateBack 方法
uni.navigateBack({
delta: 1
})
uni.navigateTo({
url: '/pages/video/index?vehicleCode='+this.vehicleCode,
})
可以解决 但有bug 页面 跳转
三、使用this.$forceUpdate()
在uniapp中,你可以调用Vue实例的 f o r c e U p d a t e ( ) 方法来迫使组件实例重新渲染。但请注意,这个方法仅仅影响实例本身和插入插槽内容的子组件,而不是所有子组件。此外,过度使用 forceUpdate()方法来迫使组件实例重新渲染。但请注意,这个方法仅仅影响实例本身和插入插槽内容的子组件,而不是所有子组件。此外,过度使用 forceUpdate()方法来迫使组件实例重新渲染。但请注意,这个方法仅仅影响实例本身和插入插槽内容的子组件,而不是所有子组件。此外,过度使用forceUpdate()可能会导致性能问题,因为它会忽略组件的shouldComponentUpdate(在Vue中对应的是beforeUpdate和updated钩子,但Vue并没有直接提供阻止更新的API),导致不必要的重新渲染。
总结
使用 uni.reLaunch 或 uni.redirectTo
虽然这两个API不是专门用来刷新页面的,但它们可以用来关闭当前页面并跳转到当前页面(或另一个页面),从而间接实现刷新的效果。不过,这种方法会重新加载整个页面,包括页面的生命周期函数(如onLoad、onShow等),并且会导致页面跳转动画,因此并不是最优的刷新方式