知識點 1.小程式裡面,點擊頁面頂部的返回按鈕的時候,返回的那個頁面不會刷新。頁面直接跳轉返回都可以傳參跳轉。需要做處理的時候,在onshow的時候接收參數並處理即可。 2.<!--?xml version="1.0" encoding="UTF-8"?--> 頁面有彈層時,阻止下麵的頁面滾動。 這 ...
知識點
1.小程式裡面,點擊頁面頂部的返回按鈕的時候,返回的那個頁面不會刷新。頁面直接跳轉返回都可以傳參跳轉。需要做處理的時候,在onshow的時候接收參數並處理即可。
2. 頁面有彈層時,阻止下麵的頁面滾動。
這個只能是用“曲線救國”來形容了。因為不能直接操作dom。就要通過class控制。通過設置外層的dom為fixed,寬度高度為100%;
.tripFix_root{ top:0px; left: 0px; width: 100%; height: 100%; overflow: hidden; position: fixed; z-index: 0; }
<view class="wx_wrap recharge {{fixflag?'tripFix_root':''}}"></view>
如果,你是index頁面中用了組件,然後組件里有彈窗,這個時候要阻止的是index裡面的最外層dom。這就要組件事件(https://developers.weixin.qq.com/miniprogram/dev/framework/custom-component/events.html)來處理了。
3.小程式樣式單位rpx(responsive pixel): 可以根據屏幕寬度進行自適應。規定屏幕寬為750rpx。如在 iPhone6 上,屏幕寬度為375px,共有750個物理像素,則750rpx = 375px = 750物理像素,1rpx = 0.5px = 1物理像素。有時候會出現在大屏手機上顯示過小的情況。
4. 小程式中的數據改變需要調用setData去設置。如果想改變數組中的某一項的某個值,可以這樣設置:
Page({ data: { array: [{text: 'init data'}], }, changeItemInArray: function() { this.setData({ 'array[0].text':'changed data' }) } })
動態設置某個值的時候可以這樣設置
var param = {}; var string = "array["+index+"].text; param[string] = 'changed data'; that.setData(param);
5.wx:if的使用,跟vue中的v-if原理一樣, 如果不符合渲染條件,它不會渲染相應部分; 小程式中有元素顯示頻繁切換的需求,例如選中與不選中這樣。建議使用 display: hidden,通過class控制。這樣能夠提高用戶體驗。
6. 名稱以 bind 開頭的事件不阻止冒泡,名稱以 catch 開頭的事件冒泡是阻止的。如 bindTap 和 catchTab。
7.在 WXML 中,可以使用 dataset 定義 data 中的數據,會通過事件傳遞。它的事件以 data- 開頭,多個單詞以 - 鏈接,如 data-a-b。也可以整個對象一起傳,如data-item="{{item}}",需要註意的是,使用這種方式定義的變數不能有大寫。它會自動轉成駝峰命名,調取的時候去駝峰命名的名字。
8.block標簽,<block/> 並不是一個組件,它僅僅是一個包裝元素,不會在頁面中做任何渲染,只接受控制屬性。
因為 wx:if 是一個控制屬性,需要將它添加到一個標簽上。如果要一次性判斷多個組件標簽,可以使用一個 <block/> 標簽將多個組件包裝起來,併在上邊使用 wx:if 控制屬性。這樣可以減少標簽的使用。<block wx:if="{{true}}">
<view> view1 </view>
<view> view2 </view>
</block>
9.輸入框Input坑點
1)鍵盤彈起,頁面自動上推。。但是目前,沒有用戶到達此版本,
2) 輸入框輸入號碼時,按照344格式化,直接return字元串並不生效。用setData設置則生效,但ios下可以明顯看到有間隔,安卓下實際上有間隔,但是必須輸入框失焦才會顯示出來。
3) 不能在bindinput事件中setData,否則ios下有一個嚴重的bug。具體表現為,輸入事,游標移至中間輸入或刪除,游標會自動跳到最後。
10.<block/> 並不是一個組件,它僅僅是一個包裝元素,不會在頁面中做任何渲染,只接受控制屬性。 因為 wx:if 是一個控制屬性,需要將它添加到一個標簽上。如果要一次性判斷多個組件標簽,可以使用一個 <block/> 標簽將多個組件包裝起來,併在上邊使用 wx:if 控制屬性。 <block wx:if="{{true}}"> <view> view1 </view> <view> view2 </view> </block> 11.小程式中picker-view中bindchange方法會在滑動結束後點確定才觸發,如果我隨手一滑,還沒等他停下就就按確定按鈕或者跳轉頁面,那麼bindchange沒觸發就不能獲取到滑動後改變的值 12.開發者工具斷點有bug,對象為undefined,對象裡面的值卻是有東西的。