-
文件
-
全部小写字母
-
单词以
.
符号为分隔,如文件home.list.stateless.tsx
-
临时、测试的文件(文件夹),命名以
_
字符开始,如_test.js
-
通用命名意义
word mean stateless 无状态组件 stateful 有状态组件
-
-
变量
- 使用驼峰命名法,如
let homeStackNavigator = 0
- 使用驼峰命名法,如
-
注释
-
变量
错误
//性别 let sex = "男";
正确
let sex = "男"; //性别
-
对齐
错误
let sSex = "男"; //性别 let sName = "小明"; //用户名 let sBirthday = "2019-01-01"; //生日
正确
let sex = "female"; //性别 let name = "alice"; //用户名 let birthday = "2019-01-01"; //生日
正确
/** * @param {sex} 性别 * @param {name} 用户名 * @param {birthday} 生日 */ let sex = "female"; let name = "alice"; let birthday = "2019-01-01";
-
props各项参数必须写明注释
-
* doc 文档
* config Taro配置文件夹
* node_modules 包依赖
* src 源代码
* action 业务类库
* common 通用工具库
* component 组件库
* container 页面
* eos eos资源和接口
* img 图片静态资源
* service 接口层
* store redux
App.tsx App主页面
constants.ts reducer接口文件
NavigationService.ts 顶级导航器
route.tsx 路由配置页面
TabNavigator.tsx 首页
- 直接被展示为页面的组件存放在
src/container
,页面内的所有组件存放在src/component
- src/component/* 文件夹下的所有页面平级
- src/container/* 文件夹下的所有页面平级
src/container
下不直接放置文件,至少需要一级文件夹
-
必须在私有分支开发,不允许直接使用master
-
不允许提交
- 无法编译、无法运行的代码
- 非必要文件,运行库(node_modules)、编译后的apk等
-
尽少提交
- 测试、打印日志代码(这会导致debug时console被刷屏)
-
提交Message
-
提交必须附带Message
-
不使用笼统的文言,如
小调整
、日常提交
、优化内容
、微调
等 -
列重点
错误:
添加了首页,修改了安卓打包的配置,删除了启动页,目前首页写了一半
正确:
* 新增,首页 * 修改,安卓打包的配置 * 删除,启动页 * 进步,首页写了一半
-
- 暂不允许升级react-native版本(因为0.57到0.60有重大升级)
- 安装新module时必须保证原生链接正常,且双端正常运行
- 统一使用npm/yarn作为包管理器,优先保证package-lock.json的正确性
- 打包前必须清除缓存
- 每天至少编译一次Android、iOS的安装包
-
作成者信息
文件首部添加 文件简述、作者信息、时间
example.tsx
/** * @Author: centerm.gaohan * @Date: 2019-06-14 14:27:00 * @Last Modified by: centerm.gaohan * @Last Modified time: 2019-08-27 17:08:40 * */ ...
-
类型
- 编写组件必须声明Props与State的类型,即Component<IProps,IState>,严禁不声明类型的写法和滥用any
- 不允许给结构确定的object、array申明为any
- props只传入必要参数,非必要参数须申明为可选类型
- 类型有限的参数使用enum
-
redux
- 必须事先在constants中声明要执行的reducer操作
- 声明之后在action.ts中进行配置
- store必须为纯函数
-
使用断言
//错误 if(sex === 0){ return "男" }else{ return "女" }
//正确 if(sex === 0){ return "男" }else if(sex === 1){ return "女" }else{ console.error(message) }
-
switch 语法必须写
default
-
删除所有未使用的引用 (import)
-
尽量使用已有样式、组件
-
合并空标签
//错误 <View></View>
//正确 <View/>
-
全部使用分号结尾(尽管js不要求)
-
多使用无状态组件,以降低复杂度