主要從如下幾個方面對比下react和微信小程序react
小程序
onLoad: 頁面加載時觸發。一個頁面只會調用一次,能夠在onload的參數options中獲取打開當前頁面路徑中的參數。
onReady: 頁面初次渲染完成時觸發。一個頁面只會調用一次,表明頁面已經準備穩當,能夠和視圖層進行交互。注意:對界面內容進行設置的API如wx.setNavigationBarTitle,請在onReady以後進行。
onShow: 頁面顯示/切入前臺時觸發。
onHide: 頁面隱藏/切入後臺時觸發。如navigateTo或底部tab切換到其餘頁面,小程序切入後臺等。
onUnload: 頁面卸載時觸發。如redirectTo或navigateBack到其餘頁面時。小程序
Page.prototype.setData(Object data, Function callback)微信小程序
setData函數用於將數據從邏輯層發送到視圖層(異步),同時改變對應的this.data的值(同步)。
注意:數組
數據請求 在頁面加載請求數據時,在小程序中通常會在onLoad或者onShow中請求數據。
小程序
WXML中的動態數據均來自對應Page的data。數據綁定使用Mustache(雙大括號)將變量包起來。微信
<view hidden=「{{false}}」>Hidden</view>
注意:
(1)不要直接寫hidden=’false’,其計算結果是一個字符串,轉成boolean類型後表明真值。
(2)花括號和引號之間若是有空格,將最終被解析成爲字符串。框架
<view wx:for=’{{[1, 2, 3]}} ’> {{item}} </view>
等同於
<view wx:for=’{{[1, 2, 3]+’ ’}}’>異步
{{item}}
</view>
能夠在{{}}內進行簡單的運算,支持的運算有:
(1) 三元運算
<view hidden=「{{flag?true:false}}」>Hidden</view>
(2) 算數運算
<view>{{a+b}}+{{c}}+d</view>
(3) 邏輯判斷
<view wx:if=’{{length>5}}’></view>
(4) 字符串運算ide
<view>{{"hello" + name}}</view>
(5) 數據路勁運算
能夠直接讀取data中的屬性值
<view>{{ object.name }}</view>
若是想在wxml中進行復雜一點的邏輯運算能夠藉助於wxs
函數
小程序
在組件上使用wx:for控制屬性綁定一個數組,便可使用數組中各項的數據重複渲染該組件。默認數組的當前項的下標變量名默認爲index,數組當前項的變量名默認爲itemthis
<view wx:for=’{{array}}’> {{index}}: {{item}} </view>
使用wx:for-item能夠指定數組當前元素的變量名,
使用wx:for-index能夠指定數組當前下標的變量名。
<view wx:for=’{{array}}’ wx:for-index=’{{idx}}’ wx:for-item=’{{ itemName’}}’ >
{{ idx }}: {{ itemName’}}
</view>
也能夠將wx:for用在<block/>標籤上,以渲染一個包含多節點的結構塊。例如:
<block wx:for=’{{array}}’>
<view>{{index}}: {{item}}</view>
</block>
事件是視圖層到邏輯層的通信方式。 事件能夠將用戶的行爲反饋到邏輯層進行處理。 事件能夠綁定在組件上,當達到觸發事件,就會執行邏輯層中對應的事件處理函數。 事件對象能夠攜帶額外信息,如id, dataset,touches。
bind和 catch的區別:
bind事件綁定不會阻止冒泡事件向上冒泡
catch事件綁定能夠阻止冒泡事件向上冒泡。
事件的捕獲階段
觸摸類事件支持捕獲階段,捕獲階段位於冒泡階段以前,且在捕獲階段中,事件到達節點的順序與冒泡階段剛好相反。須要在捕獲階段監聽事件時,能夠採用capture-bind、capture-catch 關鍵字,後者將終端捕獲階段和取消冒泡階段。
小程序
取值
this.data.object
設置值
this.setData({object});
經過setData進行改變this.data中的值,從而改變view層的顯示
在小程序不能直接給方法傳遞參數,必須經過 data-xx 的形式進行傳遞, 而後在方法中經過 event.currentTarget.dataset.xx進行獲取
說明:在aa組件(aa.js)中有一個bb組件(bb.js)
//bb.js 取出
備註:須要保持名字一致
(2) 子組件 ---> 父組件 //aa.js
//bb.js
在小程序中
(1) 父組件 ---> 子組件
//aa.js 存入
//bb.js 使用
小程序中是直接使用,跟在data中定義的變量同樣。
(2) 子組件 ---> 父組件 //aa.js
//bb.js
備註:無論是在react仍是在小程序中,子組件到父組件的數據傳遞都是經過回調函數得到的