前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Taro小程序开发总结

Taro小程序开发总结

原创
作者头像
前端老道
修改2020-05-13 10:34:27
1.1K0
修改2020-05-13 10:34:27
举报
文章被收录于专栏:Vue开发社区

01

onReachBottom的使用

onReachBottom (原生的上拉加载),在子组件components里面是不支持的,必须在父级的pages下才能够起作用

02

onShareAppMessage的使用

onShareAppMessage (分享组件),同样的在子组件里面也是不执行的,必须放在父级的pages下才能够起作用

03

canvasToTempFilePath的使用

canvasToTempFilePath (canvas生成图片),用Taro使用开发canvas,在 draw() 回调里调用该方法才能保证图片导出成功, Taro.canvasToTempFilePath({}, this)(然并卵),查看文档之后只能Taro.canvasToTempFilePath({}, this.$scope)

04

border色值的使用

小程序border的颜色值,对rgba的支持度不是很好,如果是列表的话,则会出现很多样式问题;采用boxshadow代替也会影响性能,只有采用十二进制的颜色

05

小程序自定义头部

小程序自定义头部 分为安卓和ios机型(iphone X), 根据 Taro.getSystemInfoSync().statusBarHeight的高度进行判断,注意在微信低版本的小于7.0 以下也会有问题的需要做好兼容

代码语言:javascript
复制
获取机型的高度 {   
  'iPhone': 64,   
  'iPhoneX': 88,    
  'Android': 68,    
  'samsung': 72
}
// 导航栏总高度 & 占位块高度
  placeHoder = totalBar = {    
  'iPhone': 64,    
  'iPhoneX': 88,    
  'Android': 68,   
  'samsung': 72
}
// 时间、信号等工具栏的高度
toolBar = systermInfo.statusBarHeight
// 页面title栏的高度
titleBar = totalBar - toolBar
// 根据下列方法来获取定位值
var data = wx.getMenuButtonBoundingClientRect()    
console.log('菜单按键宽度:',data.width)    
console.log('菜单按键高度:',data.height)    
console.log('菜单按键上边界坐标:',data.top)    
console.log('菜单按键右边界坐标:',data.right)    
console.log('菜单按键下边界坐标:',data.bottom)    
console.log('菜单按键左边界坐标:',data.left)

06

父子组件传值注意事项

父子组件传值,在子组件componentDidMount钩子拿不到props和更新组件可以在shouldComponentUpdate

场景:

代码语言:javascript
复制
1、有时在render中拿到props中的数据时有时候多次 undefined ,我们可以在componentWillReceiveProps来处理props的数据,也可以直接setState, 不会引起过多的render,也不会死循环(componentWillReceiveProps() 在已经装载的组件接收到新属性前调用。若你需要更新状态响应属性改变,你可能需对比 this.props 和 nextProps 并在该方法中使用 this.setState() 处理状态改变)
2、有时候并不需要更新组件,则需要用shouldComponentUpdate(nextProps, nextState)钩子函数中处理

07

小程序列表图片加载失败处理方法

onShareAppMessage (分享组件),同样的在子组件里面也是不执行的,必须放在父级的pages下才能够起作用

代码语言:javascript
复制
errorFunction: function (event) {
    console.log(event)
    var index = event.currentTarget.dataset.indexvar 
    img = 'branchList['+index+'].branch_photo'
    this.setData({[img]: '/pages/resource/img/loading.gif'})
}

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云开发 CloudBase
云开发(Tencent CloudBase,TCB)是腾讯云提供的云原生一体化开发环境和工具平台,为200万+企业和开发者提供高可用、自动弹性扩缩的后端云服务,可用于云端一体化开发多种端应用(小程序、公众号、Web 应用等),避免了应用开发过程中繁琐的服务器搭建及运维,开发者可以专注于业务逻辑的实现,开发门槛更低,效率更高。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档