- 在首页添加一个
subnvue
,样式下:{ "id": "user-panel", "path": "pages/index/subnvue/user-panel", "type": "popup", "style": { "position": "popup", "width": "100%", "mask": "none", "background": "rgba(0, 0, 0, 0)" } },
pages/index/subnvue/user-panel.vue
:<view class="user-panel" @click.stop />
样式:
<style> .user-panel { position: absolute; top: 0; bottom: 0; left: 0; right: 0; background-image: linear-gradient(to bottom right, #fafafa, #f5f5f5); width: 470rpx; padding: 0 20rpx; border-radius: 0 12rpx 12rpx 0; } </style>
- 在首页可以跳转任意界面,再从另外的界面调用
uni.reLaunch({ url: '/pages/index/index' })
方法跳转回来 - 在首页打开
subnvue
:const popup = uni.getSubNVueById('user-panel') popup.show('slide-in-left', 200);
第一次打开会出现闪屏,第二次加载了之后就正常了
- 发布:2023-03-31 16:37
- 更新:2023-03-31 16:37
- 阅读:215
产品分类: uniapp/App
PC开发环境操作系统: Windows
PC开发环境操作系统版本号: win11
HBuilderX类型: 正式
HBuilderX版本号: 3.7.8
手机系统: Android
手机系统版本号: Android 12
手机厂商: 小米
手机机型: 小米8
页面类型: nvue
vue版本: vue3
打包方式: 离线
项目创建方式: HBuilderX
操作步骤:
预期结果:
应该不会闪屏
应该不会闪屏
实际结果:
闪屏
闪屏
bug描述:
我给首页(pages/index/index
)添加了一个subnvue
窗口,名叫user-panel
。
最开始首页加载的时候,该页面的所有的subnvue
窗口也会一同加载,uniapp 的机制是这样吧?
但是,我是根据本地是否存在token
来判断第一屏应该是首页(pages/index/index
)还是登录页(pages/login/login
),如果没有token
,我等到了登录页才手动把启动屏关掉,此时首页和首页的subnvue
们已经加载了。
用户登录成功后,我再通过reLaunch
跳转回首页,但是奇怪的是,subnvue
已经不再自动加载,只有等到代码调用了show
才能够加载。
导致的问题,就会出现闪屏,因为只有等subnvue
窗口动画结束之后,页面节点才会渲染...