微信小程序的专属方法如下
onPullDownRefresh //页面相关事件处理函数–-监听用户下拉动作,从而刷新页面
onReachBottom //页面上拉触底事件的处理函数--用于分页处理刷新页面
onShareAppMessage //用户点击右上角转发
onPageScroll //页面滚动触发事件的处理函数
onTabItemTap // 当前是 tab 页时,点击 tab 时触发。这个事件本身还有缺陷待修复。
componentWillPreload //预加载,只在微信小程序中可用
一般组件完整的生命周期如下
componentWillMount //在微信小程序中这一生命周期方法对应页面的onLoad或入口文件app.js中的onLaunch
componentDidMount //在微信小程序中这一生命周期方法对应页面的onReady或入口文件app.js中的onLaunch,在 componentWillMount后执行
componentDidShow //在微信小程序中这一生命周期方法对应 onShow
componentDidHide //在微信小程序中这一生命周期方法对应 onHide
componentDidCatchError //错误监听函数,在微信小程序中这一生命周期方法对应 onError
componentDidNotFound //页面不存在监听函数,在微信小程序中这一生命周期方法对应 onPageNotFound
shouldComponentUpdate //页面是否需要更新
componentWillUpdate //页面即将更新
componentDidUpdate //页面更新完毕
componentWillUnmount //页面退出,在微信小程序中这一生命周期方法对应 onUnload
入口文件继承自 Component 组件基类,它的生命周期不如组件完整,包含如下:
componentWillMount、componentDidMount、componentDidShow、componentDidHide、componentDidCatchError、componentDidNotFound
修改state的任意数据
// https://www.cnblogs.com/zjlx/
this.state = {
current: 0,
tabObj: {title: '未使用',text:'已使用'},
dataList: [
{name: 'jack', age: 28},
{name: 'rose', age: 18}
]
}
// =========
this.setState((preState) => {
//修改基本类型数据
preState.current = e.detail.value;
//修改某一对象属性
preState.tabObj.title = e.detail.value;
//修改整个对象
preState.tabObj = {title:e.detail.value,text:'xxx'}
//修改某一数组对象属性
preState.dataList[0].name = e.detail.value;
//修改某一数组对象全部属性
preState.dataList[0] = {
name: e.detail.value,
age: 9
};
//修改整个数组
preState.dataList = [
{
name: e.detail.value,
age: 99
},
{
name: e.detail.value,
age: 88
},
];
}, () => {
console.log(this.state.current);
console.log(this.state.dataList);
console.log(this.state.dataList);
})
propTypes = {
optionalArray: PropTypes.array,//检测数组类型
optionalBool: PropTypes.bool,//检测布尔类型
optionalFunc: PropTypes.func,//检测函数(Function类型)
optionalNumber: PropTypes.number,//检测数字
optionalObject: PropTypes.object,//检测对象
optionalString: PropTypes.string,//检测字符串
optionalSymbol: PropTypes.symbol,//ES6新增的symbol类型
}