选择Taro前的考虑

■钉钉于2019年6月中旬升级原“E应用”为“小程序”,同时升级了小程序开发者工具,可以兼容阿里巴巴旗下手淘、支付宝等不同产品的运行环境钉钉小程序;

■根据官方说明,E应用和支付宝小程序使用相同的小程序通用框架,支持通用组件和API,然后分别有自己扩展的组件和API,如下图;

■Taro支持开发支付宝小程序,进而可以支持钉钉小程序的开发;

Taro通用使用方法

●环境安装:npm install -g @tarojs/cli ;

●创建项目:taro init myApp ;

●基础要点:https://nervjs.github.io/taro/docs/tutorial.html

●组件手册:https://nervjs.github.io/taro/docs/components-desc.html

●添加redux支持:

(1)安装redux,redux-thunk(需要支持异步action的话);

(2)安装@tarojs/redux,相当于react项目中的”react-redux”,对应的用法如“import { Provider } from ‘@tarojs/redux’”;

开发钉钉小程序步骤

◆进入项目目录,根据要构建的小程序类型运行相应的dev或build命令,如:npm run dev:alipay,将在根目录下生成dist目录 ;

◆使用钉钉小程序开发者工具打开dist目录将自动识别小程序类型,并监测dist目录内的变化自动编译和显示预览;

◆dev模式下Taro会监测src的变化自动将修改编译到dist目录;

◆钉钉基础要点与组件手册:https://open-doc.dingtalk.com/microapp/dev/framework-overview

◆小程序官方Demo:在小程序开发者工具中新建项目,选择“模板选取”创建即可;

开发钉钉小程序过坑记录

□Taro.request不支持钉钉小程序,需使用钉钉提供的”dd.httpRequest”发送Ajax请求;

□项目总入口文件app.jsx中”Taro.render(, document.getElementById(‘app’));”语句其实是一直都执行的,即使删掉也会正常渲染小程序,所以想确切地在小程序渲染之前dosomething是做不到的;

□不要在项目总入口文件app.jsx中调用钉钉的”dd.alert、dd.showToast”等交互UI类API,语句并不生效;

□”通讯录选人”功能在PC端小程序开发者工具中不可用,在手机端预览功能正常。其中的”responseUserOnly”参数取值为true时在手机端选择部门会引起钉钉闪退;

□Taro未实现完整的React语法
(1)不支持“props.children”,导致不支持需要传递子孙组件的组件封装;
(2)export通过connect包装的组件,被包装组件必须在同一个文件内定义而不能是import引入的组件,否则报错“未找到 Taro.Component 的类定义”;