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共享数据?
lxping (作者)
谢谢,明白了,多个webview仅作为多个界面的渲染,所有js都在jscode中执行,所以所有页面的js变量都是共享的,却又不会卡界面线程。。。从这个角度来说,确实比apicloud一个页面一个独立的webview容器要方便项目管理
2021-03-29 17:55