初次使用Taro、react、hook开发小程序

·  阅读 1156

前言

    首次开发小程序,谈谈自己对taro的看法以及遇到的一些坑和注意点,本次开发使用了Taro的框架,公司专家对框架做了bug修复,打成了私包,采用react+hook的方式去开发业务,16.8.0发布hook之后,一直采用hook的方式编写react,因此在整体react版本>16.8.0的情况下,我都会使用hook去写,强烈推荐读者也逐渐从类组件转成函数组件,会比写类组件很舒服。

Taro简介

Taro 是一个开放式跨端跨框架解决方案,支持使用 React/Vue/Nerv 等框架来开发 微信 / 京东 / 百度 / 支付宝 / 字节跳动 / QQ 小程序 / H5 等应用。现如今市面上端的形态多种多样,Web、React Native、微信小程序等各种端大行其道,当业务要求同时在不同的端都要求有所表现的时候,针对不同的端去编写多套代码的成本显然非常高,这时候只编写一套代码就能够适配到多端的能力就显得极为需要。

官网:docs.taro.zone/docs/README

    目前Taro已经更新到3.x版本,相较于 Taro 1/2 采用了重运行时的架构,让开发者可以获得完整的 React/Vue 等框架的开发体验,但是带来的性能成本很大。总的来说对于初学者,taro实现了一套代码多端小程序复用的需求,还是很好的解决方案,值得入手学习,但确实也有不少本身框架的坑等着你。

Hook

Hook是 React 16.8 的新增特性。它可以让你在不编写 class 的情况下使用 state 以及其他的 React 特性。喜欢函数式编程的不妨使用hook来编写组件。

官方文档:zh-hans.reactjs.org/docs/hooks-…

通常开发过程中常用的React hook主要有以下几个:useStateuseCallbackuseMemouseEffect

Taro也提供了很多的hook(包括很多的生命周期和功能):

Taro Hook指南:taro-docs.jd.com/taro/docs/h…

读者可以根据需要,从中选择你想要功能对应的hook。

常用的Taro Hook:

useShareAppMessage

小程序分享

useShareAppMessage(res => {
  return {
    title: '自定义转发标题',
    path: '/page/user?id=123'
  }
})
复制代码

useRouter

获取路由中参数

useReachBottom

配合页面配置onReachBottomDistance可以实现触底加载更多,方便快捷

useReachBottom(() => {  console.log('onReachBottom')})
复制代码

其他hook参考官网。

Hook使用的注意点

  1. useEffect
    依赖最好不要超过三个,适当时候可以拆分成多个useEffect,保证每个副作用执行的时机和次数,如果使用了redux,为了避免缓存影响,可以适当的在useEffect后返回一个函数,执行初始化页面redux的操作。

  2. useState
    有时我们初始化state时会利用外部传参:

    const { children } = props;
    const hasChildren = children && children.length > 0;
    const [isParent, setIsParent] = useState(hasChildren);
    复制代码

        注意,state只会初始化一次,假如数据发生变化,第一次children为空,第二次有数据,          state的值不会再发生变化,这时候需要结合useEffect重新给isParent赋值。

小程序接口Api注意点

    小程序的api存在不同版本的兼容性问题,因此在使用Api的时候一定要看清是什么版本开始支持的,比如微信的获取头像和昵称的api在微信>=7.0.9的版本中做了调整,在使用前记得兼容。

分类:
前端
标签: