微信小程序Taro开发(2):生命周期及开发中注意点
生命周期
componentWillMount
在微信小程序中这一生命周期方法对应页面的onLoad或入口文件app中的onLaunch
componentDidMount
在微信小程序中这一生命周期方法对应页面的onReady或入口文件app中的onLaunch,在 componentWillMount后执行
componentDidShow
在微信小程序中这一生命周期方法对应 onShow
componentDidHide
在微信小程序中这一生命周期方法对应 onHide
componentDidCatchError
错误监听函数,在微信小程序中这一生命周期方法对应 onError
componentDidNotFound
页面不存在监听函数,在微信小程序中这一生命周期方法对应 onPageNotFound
shouldComponentUpdate
页面是否需要更新
componentWillUpdate
页面即将更新
componentDidUpdate
页面更新完毕
componentWillUnmount
页面退出,在微信小程序中这一生命周期方法对应 onUnload
在小程序中 ,页面还有一些专属的方法成员,如下:
1. onPullDownRefresh: 页面相关事件处理函数--监听用户下拉动作
2. onReachBottom: 页面上拉触底事件的处理函数
3. onShareAppMessage: 用户点击右上角转发
4. onPageScroll: 页面滚动触发事件的处理函数
5. onTabItemTap: 当前是 tab 页时,点击 tab 时触发
6. componentWillPreload: 预加载,只在微信小程序中可用
注意
1.通常入口文件会包含一个 config 配置项,这里的配置主要参考微信小程序的全局配置而来,在编译成小程序时,这一部分配置将会被抽离成 app.json,而编译成其他端,亦会有其他作用。
2.入口文件继承自 Component 组件基类,它同样拥有组件生命周期,但因为入口文件的特殊性,他的生命周期并不完整,如:componentWillMount、componentDidMount、componentDidShow、componentDidHide、componentDidCatchError、componentDidNotFound。
3.入口文件需要包含一个 render 方法,一般返回程序的第一个页面,但值得注意的是不要在入口文件中的 render 方法里写逻辑及引用其他页面、组件,因为编译时 render 方法的内容会被直接替换掉,你的逻辑代码不会起作用。
4.Taro 支持组件化开发,组件代码可以放在任意位置,不过建议放在 src 下的 components 目录中。一个组件通常包含组件 JS 文件以及组件样式文件,组织方式与页面类似。
taro项目目录如下:
├── config 配置目录 | ├── dev.js 开发时配置 | ├── index.js 默认配置 | └── prod.js 打包时配置 ├── src 源码目录 | ├── components 公共组件目录 | ├── pages 页面文件目录 | | ├── index index 页面目录 | | | ├── banner 页面 index 私有组件 | | | ├── index.js index 页面逻辑 | | | └── index.css index 页面样式 | ├── utils 公共方法库 | ├── app.css 项目总通用样式 | └── app.js 项目入口文件 └── package.json