在 kbone 中,每个页面拥有独立的 window 对象,页面与页面间是相互隔离的,为此需要一个跨页面通信和跨页面数据共享的方式。
在订阅了此消息的页面则会输出 receive a msg: I am june。
PS:如果需要取消订阅消息,可以使用 window.$unsubscribe 接口进行取消。
PS:页面关闭后,会取消该页面所有的订阅。
如果需要跨页面数据进行共享,可以使用 window.$global 对象,所有页面的 window.$global 均会指向同一个对象:
PS:具体 API 可参考 dom/bom 扩展 API 文档。
在 kbone-advanced 目录下创建 08-share-message 目录,本案例在这个目录下完成。
编辑 package.json:
安装依赖包:
在 08-share-message/build 目录下创建 webpack.mp.config.js,内容如下:
在 08-share-message/build 目录下创建 miniprogram.config.js,内容如下:
在 /src/ 下创建 page1 文件夹,在 page1 下创建 main.mp.js 文件,内容如下:
在 /src/ 下创建 store 文件夹,在 store 下创建 index.js 文件,内容如下:
在 /src/page1 下创建 App.vue 文件,内容如下:
在 /src/ 下创建 common 文件夹,在 common 下创建 Header.vue 文件,内容如下:
在 /src/common 下创建 Footer.vue 文件,内容如下:
在 /src/ 下创建 page2 文件夹,在 page2 下创建 main.mp.js 文件,内容如下:
在 /src/page2 下创建 App.js 文件,内容如下:
在 /src/ 下创建 page3 文件夹,在 page3 下创建 main.mp.js 文件,内容如下:
在 /src/page3 下创建 App.js 文件,内容如下:
在 /src/ 下创建 page4 文件夹,在 page4 下创建 main.mp.js 文件,内容如下:
在 /src/page4 下创建 App.js 文件,内容如下: