在开发基于 nodejs 的 app 项目时,需要使用返回上一页的功能。 这个功能应当如何设计,在有 History 信息的情况下。
经常会遇到这样一个问题,有的页面允许返回,有的页面不允许返回。
Q1: 从 A 页面跳转到 B 页面后,B 页面不允许再返回到 A 页面,这个的控制权限应该交给 A 还是 B ?
例: 默认情况下全部不允许返回,B 页面控制我是否显示返回按钮。但是也有需求是 A 页面说我允许返回才可以返回否则禁止返回?所以这个权限应该给 B 还是给 A,还是两个都给,如果两个都给,应该谁权限更大一些?
Q2: History 自带的返回和前进功能过于简单,难以解决复杂的跳转页面问题
例: 一个多页的表单,用户从 A => B => C ,这时候在 C 页面用户希望返回,程序设计上只允许用户返回到 A 页面,而如果用户在 B 页面,则允许直接从 B 页面返回到 A 页面,这时候的逻辑就比较复杂了。。。单纯的 前进和返回已经无法实现。
Q3: 有没有合适的 js、nodejs 插件或方法用于管理这种我认为比较复杂的跳转问题。
1
whypool 2018-02-22 18:16:08 +08:00 1
传统多页面权限跳转,由后端控制,比如当前用户已经填写了表单,返回到表单页面的时候,直接 redirect 出去
单页方式,跳转可以不 pushState 状态,前端单页的框架都带路由,这个可以解决 |
2
hoythan OP @whypool 全部都用 redirect 的话会导致 back 功能无效了,因为没有了上一页的记录,如果只有部分用的话,又回到了第一个问题,谁控制权限比较合适
|
3
hoythan OP 不管是不是 nodejs 项目,我觉得所有的应用程序开发不应该都有这样的问题嘛,他们是怎么解决的呀。
|
5
vuuv 2018-02-22 22:37:43 +08:00 via Android
中间的临时页面不进入 history ?这样就不会跳转到了。
|
6
Building 2018-02-23 08:44:59 +08:00 via iPhone
写一个 navigation 控制器,前进和后退就是出栈和入栈的操作,页面只绑定属性,具体操作交给 navigation 控制器。
|
7
zhuishe 2018-02-23 09:05:12 +08:00
我一般都用 History
|
8
simple11 2018-02-23 10:41:41 +08:00
navigation 控制器
|