需求:
项目要求在从细节页面退回到列表页面的时候,如果细节页面的数据进行了手动的修改,推出前需要提示“有数据进行了修改,是否先保存”之类的
uni-app本身没有路由管理,需要借助其他的组件插件,这个项目借助了uni-simple-router,具体文档链接:uni-simple-router
大致记录下实现的过程:

下面的方法是直接读取pages.json作为路由表,不用单独自己写路由表




以上是引入路由的步骤,这里也是直接引用的文档里面的步骤,文档里面写得很清楚
然后是单独的页面(详情页面)
//detail.js,
export default {
name:"detail",
data(){
return{
editted:false //是否已经编辑该页面
}
},
onLoad(){},
onShow(){},
beforeRouteLeave(to, from, next) {
// 导航离开该组件的对应路由时调用
// 可以访问组件实例 `this`
if(to.name=='list'){
if(this.editted){
uni.showModal({
content:'是否先保存修改内容?',
success: (res) => {
if(res.confirm){
next(false)
}else{
next()
}
}
})
}else{
next();
}
}else{
next()
}
},
}
本文档介绍了在uni-app项目中如何使用uni-simple-router进行路由管理,特别是在从详情页返回列表页时,当详情页数据被修改,如何实现退出前的保存提示功能。通过直接读取pages.json作为路由表,简化了配置过程。
1万+





