vue-router中scrollBehavior的巧妙用法
問題:使用keep-alive標籤後部分安卓機返回快取頁位置不精確問題
解決方案:
<div id="app"> <keep-alive> <router-view v-if="$route.meta.keepAlive"></router-view> </keep-alive> <router-view v-if="!$route.meta.keepAlive"></router-view></div>const router = new Router({ scrollBehavior(to, from, savedPosition) { if (savedPosition && to.meta.keepAlive) { return savedPosition; } return { x: 0, y:0 }; }, });
前端全棧學習交流圈:866109386,面向1-3經驗年前端開發人員,幫助突破技術瓶頸,提升思維能力 群內有大量PDF可供自取,更有乾貨實戰專案影片進群免費領取。
-
頁面返回出現空白屏問題
問題
【前提】:iOS裝置 【步驟】: 頁面A是個列表很長-->滑到頁尾的時候點選跳轉之後到頁面B--->再返回A頁面 --->螢幕會出現空白遮罩層--->手指輕觸螢幕滑動--->遮罩層消失
解決方案一
在介面請求成功後的回撥操作完成後進行該操作,例如
// fetchCourseList是一個封裝好的Promise請求 fetchCourseList().then(({ data: courses }) => { this.courses = courses; }).then(() => { setTimeout(() => { window.scrollTo(0, 1); window.scrollTo(0, 0); }); });
該方案的弊端: 每個頁面都需要做這樣的處理,不推薦使用。
解決方案二(推薦)
使用scrollBehavior中的非同步滾動操作
const router = new Router({ scrollBehavior(to, from, savedPosition) { // keep-alive 返回快取頁面後記錄瀏覽位置 if (savedPosition && to.meta.keepAlive) { return savedPosition; } // 非同步滾動操作 return new Promise((resolve) => { setTimeout(() => { resolve({ x: 0, y: 1 }); }, 0); }); }, });
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31557424/viewspace-2284093/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- vue-router中scrollBehavior的妙用Vue
- 【VUE】vue-router的基本用法Vue
- 淺談Vue-router的部分高階用法Vue
- vue-Router中name的使用Vue
- 巧妙的CSSCSS
- 巧妙的煎餅
- js中的this用法JS
- MYSQL中replace into的用法MySql
- MySQL中limit的用法MySqlMIT
- js中的||與&&用法JS
- iOS 中 cell的用法iOS
- Java中DecimalFormat的用法JavaDecimalORM
- python中return的用法Python
- golang中channel的用法Golang
- python中的eval用法Python
- DataTable中的select()用法
- Python中if的基本用法Python
- Java中super的用法Java
- mySQL中replace的用法MySql
- SQL中Merge的用法SQL
- vue-router的使用Vue
- JDK中Lambda表示式的序列化與SerializedLambda的巧妙使用JDKZed
- Vue-loader 的巧妙玩法Vue
- 巧妙設定job的interval
- Vue-router 中hash模式和history模式的區別Vue模式
- C++中const的用法C++
- Python中return self的用法Python
- JAVA中String format的用法JavaORM
- stl中map的基本用法
- linux 中 date命令的用法Linux
- C#中Enum的用法C#
- oracle樹中prior的用法Oracle
- shell中set指令的用法
- Linux 中 grep xxx的用法Linux
- C++中& 的基本用法C++
- QMl 中alias 的基本用法
- SQL中的遞迴用法SQL遞迴
- PHP中引號的用法PHP