# page.js
在每個頁面路徑下,需要建立一個跟頁面文件同名的 js,用于處理當前頁面的一些邏輯。
`Page()` 函數用來注冊一個頁面。接受一個 object 參數,其指定頁面的初始數據、生命周期函數、事件處理函數等。
**object 參數說明:**
| 屬性 | 類型 | 描述 |
| ---------------------------------------- | -------- | ---------------------------------------- |
| [data](https://mp.weixin.qq.com/debug/wxadoc/dev/framework/app-service/page.html#%E5%88%9D%E5%A7%8B%E5%8C%96%E6%95%B0%E6%8D%AE) | Object | 頁面的初始數據 |
| onLoad | Function | 生命周期函數--監聽頁面加載 |
| onReady | Function | 生命周期函數--監聽頁面初次渲染完成 |
| onShow | Function | 生命周期函數--監聽頁面顯示 |
| onHide | Function | 生命周期函數--監聽頁面隱藏 |
| onUnload | Function | 生命周期函數--監聽頁面卸載 |
| onPullDownRefresh | Function | 頁面相關事件處理函數--監聽用戶下拉動作 |
| onReachBottom | Function | 頁面上拉觸底事件的處理函數 |
| onShareAppMessage | Function | 用戶點擊右上角轉發 |
| onPageScroll | Function | 頁面滾動觸發事件的處理函數 |
| onTabItemTap | Function | 當前是 tab 頁時,點擊 tab 時觸發 |
| 其他 | Any | 開發者可以添加任意的函數或數據到 object 參數中,在頁面的函數中用 `this` 可以訪問 |
**object 內容在頁面加載時會進行一次深拷貝,需考慮數據大小對頁面加載的開銷**
**示例代碼:**
```
//index.js
Page({
data: {
text: "This is page data."
},
onLoad: function(options) {
// Do some initialize when page load.
},
onReady: function() {
// Do something when page ready.
},
onShow: function() {
// Do something when page show.
},
onHide: function() {
// Do something when page hide.
},
onUnload: function() {
// Do something when page close.
},
onPullDownRefresh: function() {
// Do something when pull down.
},
onReachBottom: function() {
// Do something when page reach bottom.
},
onShareAppMessage: function () {
// return custom share data when user share.
},
onPageScroll: function() {
// Do something when page scroll
},
onTabItemTap(item) {
console.log(item.index)
console.log(item.pagePath)
console.log(item.text)
},
// Event handler.
viewTap: function() {
this.setData({
text: 'Set some data for updating view.'
}, function() {
// this is setData callback
})
},
customData: {
hi: 'MINA'
}
})
```
- 簡介
- 第一章 公眾號開發
- 使用微信JSSDK
- 接口權限配置
- 分享接口
- 隱藏按鈕項
- 微信支付
- 第二章 小程序開發
- 基礎知識
- 分包加載
- WXSS樣式表
- 配置
- app.json配置
- window
- tabBar
- page.json配置
- 邏輯層
- app.js
- 場景值
- page.js
- 初始化數據
- 生命周期函數
- 頁面相關事件處理函數
- 事件處理函數
- 頁面實例方法
- 路由
- 文件作用域
- 模塊化
- 視圖層
- 模板語法
- 列表渲染
- 條件渲染
- 模板
- 事件
- 引用
- WXS語法規范
- WXS數據類型
- WXS控制流程
- WXS基礎類庫
- 組件
- 視圖容器
- view
- scroll-view
- swiper
- movable-view
- cover-view
- 基礎組件
- icon
- text
- rich-text
- progress
- 表單組件
- button
- checkbox
- form
- input
- label
- picker
- picker-view
- radio
- slider
- switch
- textarea
- 導航組件
- navigator
- 媒體組件
- audio
- image
- video
- camera
- 地圖組件
- map
- 畫布組件
- canvas
- 開放能力
- web-view
- 自定義組件
- 組件模版和樣式
- Component
- 組件傳值
- 組件事件
- Behaviors
- 組件間關系
- 網絡請求
- wx.request
- 微信登錄
- 獲取 openid 和 unionid
- 獲取用戶信息
- 將 wx.request 封裝為 promise
- 上傳圖片接口封裝
- 數據存儲
- 存儲數據和讀取數據
- 獲取數據緩存信息
- 移除數據緩存
- 獲取用戶設置
- openSetting
- getSetting
- 第三章 小游戲開發
- 參考資料