lxping
lxping
  • 发布:2021-03-29 06:56
  • 更新:2021-03-29 16:54
  • 阅读:2262

uniapp打包的app,是如何实现多窗口页面的?

分类:uni-app

uniapp打包app后,会在app里生成vue单页应用,即所有vue文件代码全部合并在一个app-view.js文件里(虽然分包可以拆分这个js文件),并通过 __uniappview.html调用该js文件。

那么问题来了,uniapp是如何实现vue单页面却用多窗口(webview)打开页面的呢?

1、类似vue的keep-alive,只打开一个webview(此方案官方一直不推荐,所以猜测不是这个方式)

2、采用类似vue-router的hash实现,不同的页面,用多个webview打开不同的hash,比如uniappview.html#a,uniappview.html#b(按理说,多个webview是不可能vuex共享的,因为每次打开webview,vuejs都会重新初始化,但经过测试,在vuex不实现持久化的情况下,居然可以vuex共享数据)

所以现在很迷茫,uniapp打包后的app,到底是如何让vue单页在多个webview中打开的,并且还能实现vuex共享数据?

2021-03-29 06:56 负责人:无 分享
已邀请:
DCloud_UNI_GSQ

DCloud_UNI_GSQ

和其他小程序框架类似的双线程模型

微信小程序:https://developers.weixin.qq.com/miniprogram/dev/framework/quickstart/framework.html#%E6%B8%B2%E6%9F%93%E5%B1%82%E5%92%8C%E9%80%BB%E8%BE%91%E5%B1%82

百度小程序:https://smartprogram.baidu.com/docs/develop/tutorial/intro/

  • lxping (作者)

    谢谢,明白了,多个webview仅作为多个界面的渲染,所有js都在jscode中执行,所以所有页面的js变量都是共享的,却又不会卡界面线程。。。从这个角度来说,确实比apicloud一个页面一个独立的webview容器要方便项目管理

    2021-03-29 17:55

该问题目前已经被锁定, 无法添加新回复