主要从如下几个方面对比下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仍是在小程序中,子组件到父组件的数据传递都是经过回调函数得到的