? ? 很多人在開(kāi)發(fā)小程序包括web的時(shí)候,一說(shuō)到頁(yè)面?zhèn)鲄⒌谝挥∠缶褪莔ain.js或app.js,對(duì)的,全局變量,如果輕量化的應(yīng)用用這種方式當(dāng)然沒(méi)有問(wèn)題。但是當(dāng)你要做一個(gè)中大型應(yīng)用時(shí)全局變量的使用就等于慢性死亡。
? ? 所以下面介紹一個(gè)微信小程序的庫(kù):killglobal,使用簡(jiǎn)單上手快,功能強(qiáng)大效率高!
? ? 安裝:
????npm i killglobal --save
使用:
pages/index/index.js
????import { getWechat } from "killglobal";
????const BasePage = getWechat().page;
????const Router = getWechat().router;
????Page(BasePage({
? ? ? ? data: { },
? ? ? ? onLoad(){ },
? ? ? ? onShow(){ },
? ? ????onTapPage1(){ // 跳轉(zhuǎn)到page1
????????????Router.navigateTo('/pages/page1/index', { onload: 'onload' })
? ??????????.withKGData({ kgdata: 'kgdata' })
? ??????????.onPage( page => {?page.showAlert();? // 執(zhí)行結(jié)果: I'm Page1!?});
? ? ????},
????}))
pages/page1/index.js
????import { getWechat } from "killglobal";
????const BasePage = getWechat().page;
????const Router = getWechat().router;
????Page(BasePage({
? ? ????onKGData(data){
? ? ? ? ????console.log(params); // 執(zhí)行結(jié)果: { kgdata: 'kgdata' }
????????},
????? ? onLoad(params){
? ? ????? ? console.log(params);? // 執(zhí)行結(jié)果: { onload: 'onload' }
????? ? }
? ? ????showAlert(){
????????????console.log("I'm Page1!");
? ? ????},
????}))
同樣在reLaunch、redirectTo甚至是navigateBack的時(shí)候也能優(yōu)雅傳參。
Router.navigateTo(path, options);
參數(shù):
path: 跳轉(zhuǎn)的路徑
options: 路徑后面的參數(shù),拼接到路徑后面(/pages/page1/index?a=1&b=2)
.withKGData(obj) 和 onKGData(data)
配合navigateTo、redirectTo、reLaunch、navigateBack函數(shù)使用
注意,withKGData的數(shù)據(jù)和onKGData接收的數(shù)據(jù)是兩個(gè)不同的數(shù)據(jù),onKGData接收的數(shù)據(jù)被深拷貝過(guò),防止污染。
onPage(page=>{})?
配合navigateTo、redirectTo、reLaunch、navigateBack函數(shù)使用
在回調(diào)中獲取跳轉(zhuǎn)目標(biāo)page的實(shí)例
更多參考:killglobal官方文檔