/taro-es6

taro使用es6编写版本

Primary LanguageJavaScript

安装

  • 安装taro开发工具 @taro/cli yarn global add @tarojs/cli
  • 使用:taro init myTaro
  • 下载微信开发者工具

生命周期 state

  • 状态更新一定是异步的
  • react 的状态更新不一定是异步的,更新数据必须使用setState方法,直接赋值不会更新组件

props

  • 和react 一致 在传递函数的时候前面必须加on,不然小程序会报错

路由功能及资源引用

  • 在taro中,路由功能是默认自带的,不需要开发者进行额外的路由配置
  • 这里相当于通过小程序的配置适配了小程序和h5的路由问题
  • taro默认根据配置路径生成Route 小程序有五层
  • 我们只需要在入口文件的config配置中指定好pages,然后就可以在代码中通过Taro提供的APi来跳转到目的页面
    • taro.navigateTo({url: '/pages/index/index'})
    • taro.redirectTo():页面重定向,没有返回箭头
  • 路由传参:
    • 我们可以通过在所有跳转的url后面添加查询字符串在进行跳转传参
    • 例如: id=2&type=test
      Taro.navigateTo({
        url: '/pages/page/path/name?id=2&type=test'
      })
    • 这样的话,在跳转成功的目标也的生命周期方法里就能通过this.$router.params 获取到 传的参数,例如上诉跳转,在目标也的componentWillMount生命周期里获取入参

资源引用

  • 在taro中可以像使用webpack那样自由的引用静态资源,而且不需要安装任何loader
  • 引用样式文件
  • 可以直接通过es6的import 语法来引用样式文件js文件
  • 引用图片、音频、字体等文件同上
    • 也可以用require({'../path'})来引用,只有本地文件才可以这样做,如果是线上的直接赋值即可

条件渲染、列表渲染

  - 短路表达式:|| 小程序在短路表达式渲染时,会出现true或者false的短暂出现,所以要适配小程序,最好使用三元表达式进行判断
  - 三元表达式:比较通用的一种方式,jsx语法是不支持if操作符,所以只能用三元表达式或者短路表达式
  - 列表渲染:
     ```js
       {
         list.map( (item, index) => {
           //里面不能写if/else
           return (<View key={item.is}><Text>item.name</Text></View>)
         })
       }
     ```

chilren 传递

 - {this.props.children} 
    - 不能对他进行任何操作
    - 如果要操作自定义属性,要在父级引入的子组件的标签里面传值,
      - <Dialog s={1}>  子组件 this.props.s

事件

- 使用驼峰
- 注意this的指向,bind(this) ,或者箭头函数
- 阻止事件冒泡:默认事件参数event默认在函数参数的最后  

环境变量

- process.env.TARO_ENV
- 可以根据环境的不同来兼容不同的文件

blog 项目初始化

- 使用redux模板
- API地址https://cnodejs.org/api
  - 获取话题列表
  - 获取话题详情
  - 验证用户token
  - 获取用户信息
  - 新建话题信息
  - 回复话题信息
  - 点赞取消点赞
  - ...
  - 请求方式
  ```js
   Taro.request((
      url: '',
      data: '',
      method: ''
   ))
  ```

业务模块开发

- 话题列表开发
  - 切换话题分类
    - 使用taro-ui的抽屉,使用时请下载package.json对应版本号
    - 使用redux,进行数据管理,
      - @connect()方法将 redux 与我们的页面进行连接connect 方法接受两个参数 mapStateToProps 与 mapDispatchToProps
         mapStateToProps,函数类型,接受最新的 state 作为参数,用于将 state 映射到组件的 props
         mapDispatchToProps,函数类型,接收 dispatch() 方法并返回期望注入到展示组件的 props 中的回调方法
  - 查看用户信息
  - 分页加载话题