1***@qq.com
1***@qq.com
  • 发布:2023-08-29 09:20
  • 更新:2023-08-31 23:35
  • 阅读:667

uniApp中,同一page, 可否打开两个或多个实例?

分类:uni-app

比如: 我设计一个Page, 这是"通用单据"显示模式.

我可以用它来显示"采购单", 也可以用它来显示"销售单"

我在采购单页面中, 表格里也有"销售单号"这一数据, 我希望点击它, 能再打开一个实例页面, 用于显示销售单.

且也支持NavigateBack回到前一页面(采购单)的功能.

请问一下大家, 能否实现这样功能?

2023-08-29 09:20 负责人:无 分享
已邀请:
1***@qq.com

1***@qq.com (作者)

成功啦!!!

我就用上面的最恶心的方法!

我做了一个批处理文件,
把这个标准vue文件,复制了 2.vue, 3.vue....10个文件

然后,page.json中也加上它

并在跳转中, 看看哪个页面没被 使用, 就用这个空闲的.

当达到第10个时, 就提示用户"页面已达10层最大值了, 请返回关闭一些"

这样,就实现了一套代码, 多次引用. 并且, 能有返回上一页的功能.

(hbuildx中, 查找功能里, 还可以排除这2,3,4....10.vue文件, 避免相同代码全跳出来)

如果用户觉得10个不够, 扩到20个也没问题!!!!!!!!!!!!

1***@qq.com

1***@qq.com (作者)

即: 穿透式点击

1***@qq.com

1***@qq.com (作者)

有哪位大侠指点一下.

如果实在没有办法的话,
我脑子里有一个比较恶心的方法:

就是做一个小工具, 把这个标准页面, 复制出10个重复页面来.(文件名加1,2,3....)

然后, 在路由跳转时, 我建立起一个全局列表, 用于分配这10个页面.

有点恶心吧......
但也是一个办法!!!

如果将来用户觉得好用, 扩展到20个,30个重复页面, 也是可以的.

NiceUI前端

NiceUI前端 - 全栈开发

这好比多个地方触发进入同一个page吧,通过触发传递不同的参数,然后再同一个page里页面处理部分业务差异所显示不同的内容,当然大部分显示是相同的,要不然没必要做成通用页面。

  • 1***@qq.com (作者)

    您的意思是: 永远只显示一个page, 就在这一个page中, 显示不同的单据.


    但是, 这样设计的话, 就没有 navigateback(返回)的功能了. 那就相当不友好了.


    可能你又会说: 你自已再模拟做一个 naviageback的效果 ( 实际就是在同一页中,不断显示历史单据)


    但这样, 又有一个缺点, 不好记录页面的位置. ( 比如: 有的用户, 在看采购订单时, 它滑动到页面中间左右, 然后, 他点了一个链接到"销售订单"界面,


    你如果返回时, 很难恢复到原有跳转前的页面. ...


    VerticalScroll只是一个例子而已, 也可能有其它数据. 比如: 输入框中, 输入到一半的信息....

    2023-08-30 23:20

  • 1***@qq.com (作者)

    我这个页面, 只是一个容器,

    实际控制页面的差异, 是在后台.

    我后台脚本中, 可以写不同的代码,


    前台这个页面, 只负责把它翻译成uniapp的语言.

    2023-08-30 23:26

  • 1***@qq.com (作者)

    如果官方, 能在 uni.reLaunch 里, 再引入一个"次级ID",


    并且, 生成的页面是: 当前页面路径 + "次级ID".


    这样, 就保证了页面的唯一性,


    那就太棒了!!!!!!!!!!!!!!!!!!!!!!

    2023-08-30 23:35

  • 1***@qq.com (作者)

    或者再加多一种 跳转的命令也行.

    2023-08-30 23:37

1***@qq.com

1***@qq.com (作者)

当然,官方如果肯再加多一种reLaunch 参数,就更好了, 不加也没事, 就是APP体积大一点点而已!

估计运行效率是一样的!

要回复问题请先登录注册