關於mpvue中同路由不同頁面共享資料的解決方案

陳建光發表於2018-10-13

該問題出現的issue,目前官方未給出修復以及解決方案

issue 114

使用場景:

在使用mpvue開發小程式中,出現同路由複用,使用不同頁面的情況。 例如: 全部->詳情頁1(id=22)->個人頁->詳情頁2(id=24,前面詳情頁1 id被改變)->返回個人頁->返回詳情頁(id=24)

問題分析:

通過打斷點分析,同路由下的不同頁面,資料data的掛載,是共享的...也就是說用的一直都是同一個data,而不是每個頁面擁有一個獨立的data

解決方案:

使用修改後的mpvue-loader外掛包

使用開源更改後的頁面外掛包

需要修改 重複使用路由 頁面的main.js檔案

import pageFactory from 'mpvue-page-factory'
import App from './index'
Page(pageFactory(App))
複製程式碼

配置如下

修改使用的mvpue-loader外掛以及增加工廠頁面外掛

--package.json

"mpvue-loader": "git+https://github.com/HelloZJW/mpvue-loader.git#patch1.0.x",
"mpvue-page-factory": "^1.0.0",
複製程式碼

關於mpvue中同路由不同頁面共享資料的解決方案

注意:

並且在該頁面請勿使用mpvue官方文件提供的api獲取頁面傳參:

關於mpvue中同路由不同頁面共享資料的解決方案

請使用小程式的api獲取頁面棧,在跳轉的頁面onLoad函式 附帶引數option,然後再通過option來獲取id

關於mpvue中同路由不同頁面共享資料的解決方案

有的小夥伴發現自己的版本是從最近的mpvue官方初始化的,不能正確地配置現在提供一個初始化的修復版mpvue專案倉庫提供於大家使用

simple-mpue-fixed

感謝該方案的外掛提供者~HelloZJW

相關文章