全局組件 微信小程式組件關係中,父組件使用子組件需要在父組件index.json中引入子組件,然後在父組件頁面中使用,這種組件的對應狀態是一對一的,一個組件對應一個頁面。如果有一個全局彈窗(登錄),那麼每個頁面引入一次組件會非常麻煩,這裡就需要封裝全局彈窗,在頁面直接引入使用即可。 微信小程式提供全 ...
全局組件
微信小程式組件關係中,父組件使用子組件需要在父組件index.json
中引入子組件,然後在父組件頁面中使用,這種組件的對應狀態是一對一的,一個組件對應一個頁面。如果有一個全局彈窗(登錄),那麼每個頁面引入一次組件會非常麻煩,這裡就需要封裝全局彈窗,在頁面直接引入使用即可。
微信小程式提供全局組件,只需要在app.json
中引入組件,該組件就會被註冊為全局組件,父組件的json
文件不需要引入組件即可使用。
"usingComponents": {
"whatStore": "/components/whatStore/index"
},
在usingComponents
中註冊的組件就是全局組件,在小程式的任意頁面都可以引入並使用組件
直接將組件寫入頁面即可,組件的使用方法和普通組件一致。
全局實例
App(Object object)
App()
必須在app.js
中調用,必須調用並且全局只能調用一次
,在App()
中有應用的的生命周期。全局函數可以寫在App()
中,通過getApp()
獲取App()
上掛載的方法。
// 頁面上使用
let app = getApp()
console.log(app.sayHi()); // 全局函數
可以在App()
上掛載登錄方法,當用戶token
過期或者未登錄時,通過全局函數配合全局彈窗來發起登錄,也可以只調用全局函數預設刷新token
。
getApp()
在getApp()
上定義的參數為全局參數,都可以在小程式任意頁面直接使用,建議將參數添加到globalData
上。
// A頁面
let app = getApp()
app.globalData.params = '全局參數'
// B頁面
let app = getApp()
console.log(app.globalData.params ) // 全局參數