1. 元件內路由跳轉:
url寫成'../../xxx'這種相對路徑是會報錯的,
正確寫法是下面這樣:
wx.navigateTo({ url: '/pages/demo/demo',})
當然,正常page裡的路由跳轉寫相對路徑是沒問題的,如'./../xxxx...'
2. 父子元件通訊
父頁面:
<view> <child-box id="childbox" datas="{{datas}}" bind:parentEvent="parentEventFun"></child-box></view >
父頁面.js
Page({ parentEventFun(val) { console.log(val)//子元件傳過來的值 }, onLoad() { // 呼叫子元件方法 this.selectComponent("#childbox").childFun() }})
子元件:
<view> child components</view>
子元件.js
Component({ methods: { childFun() { this.triggerEvent('parentEvent', { msg: '呼叫父方法並傳值' }, {}) } }})
3. 自定義top攔
需要在index.json中新增
在app.js中的 onLaunch 中執行, 並存儲在globalData中方便全域性呼叫
App({ onLaunch: function() { wx.getSystemInfo({ success: (res) => { this.globalData.height = res.statusBarHeight } }) }, globalData: { userInfo: null, height: 0 }})
頁面使用:
onShow: function () { this.setData({ height: app.globalData.height, })}
頁面:
<view class="top-title" style="top:{{height}}px;">自定義頂部資訊</view>
4. 元件生命週期
最重要的生命週期是 created attached detached ,包含一個元件例項生命流程的最主要時間點。
created:元件例項剛剛被建立好,元件資料 this.data 就是在 Component 構造器中定義的資料 data 。 此時還不能呼叫 setData 。 通常情況下,這個生命週期只應該用於給元件 this 新增一些自定義屬性欄位。
attached:在元件完全初始化完畢、進入頁面節點樹後,this.data 已被初始化為元件的當前值。這個生命週期很有用,絕大多數初始化工作可以在這個時機進行。
detached:在元件離開頁面節點樹後,退出一個頁面時,如果元件還在頁面節點樹中,則 detached 會被觸發。
所以,一般我們不需要用這幾個生命週期函式,因為用的時候發現它不會自動重新整理。
就算你頁面資料更新了(重新setData了,頁面未關閉),元件dom也不會更新,不用attached, 可以直接用properties中的傳參,這個是實時更新的。
最新評論