uniapp編譯報錯打不開頁面
① uni-app 重新編譯後頁面可以停留在原頁面
uni-app 進行小程序開發時,更改了相應的參數後,是需要進行重新編譯,才能反饋在頁面同中的,然後一旦重新編譯的話,默認情況下後跳轉到首頁,也就是在pages.json中pages數組中的第一項。
對此uni-app是提供了有了condition https://uniapp.dcloud.io/collocation/pages.html#condition ,它是在pages.json中進行手動配置,更在於傳入到頁面的參數是仿首並不容易拿到的。
因此希望可以通過某種方式可以最終達到,重新編譯頁面後,頁面依舊可以停留在原先的頁面,並且數據參數都是要與原來保持一致。
如果我能進行拿大緩uni-app中的路由攔截,並將攔截到的路由設置在storage中,編譯後,再次進入到首頁時,使用navigateTo直接跳轉到原來的頁面,一切便大功造成。
對於uni-app中消模的路由攔截可以使用官方的攔截器, https://uniapp.dcloud.io/api/interceptor.html#addinterceptor 。 也可以採用重寫路由的方式,如下:
問題在於,我們使用的原生的頂部欄,返回上一頁,並不能被攔截到。而在微信小程序中,事件onBackPress是不起作用的。
因此這種方式不能很好的解決。 https://uniapp.dcloud.io/tutorial/page.html#lifecycle
基本的思路是在頁面或者應用的銷毀的銷毀的生命周期時將當前頁面的信息存儲到storage,然後在頁面載入時,跳轉到原先的頁面。
最終很遺憾的是,再次編譯時是沒有進入到 頁面生命周期 onUnLoad中,也沒有進入到組件生命周期 beforeDestory中的。
在開發環境中使用定時器,不斷將當前頁面的值寫入到Storage中,編譯再次進入時跳轉。
通過了這種方式,特別對於層級很深的頁面,不需要再編譯之後一層層去點到之前的頁面了,開發效率被大大提升。