基本书写

组件创建

Taro 中组件以类的形式进行创建,并且单个文件中只能存在单个组件

代码缩进

使用两个空格进行缩进,不要混合使用空格与制表符作为缩进

  1. import Taro, { Component } from '@tarojs/taro'
  2. import { View, Text } from '@tarojs/components'
  3. class MyComponent extends Component {
  4. render () {
  5. return (
  6. <View className='test'> // ✓ 正确
  7. <Text>12</Text> // 错误
  8. </View>
  9. )
  10. }
  11. }

单引号

JSX 属性均使用单引号

  1. import Taro, { Component } from '@tarojs/taro'
  2. import { View, Input } from '@tarojs/components'
  3. class MyComponent extends Component {
  4. render () {
  5. return (
  6. <View className='test'> // ✓ 正确
  7. <Text className="test_text">12</Text> // 错误
  8. </View>
  9. )
  10. }
  11. }

对齐方式

多个属性,多行书写,每个属性占用一行,标签结束另起一行

  1. // bad
  2. <Foo superLongParam='bar'
  3. anotherSuperLongParam='baz' />
  4. // good
  5. <Foo
  6. superLongParam='bar'
  7. anotherSuperLongParam='baz'
  8. />
  9. // 如果组件的属性可以放在一行就保持在当前一行中
  10. <Foo bar='bar' />
  11. // 多行属性采用缩进
  12. <Foo
  13. superLongParam='bar'
  14. anotherSuperLongParam='baz'
  15. >
  16. <Quux />
  17. </Foo>

空格使用

终始在自闭合标签前面添加一个空格

  1. // bad
  2. <Foo/>
  3. // very bad
  4. <Foo />
  5. // bad
  6. <Foo
  7. />
  8. // good
  9. <Foo />

属性书写

属性名称始终使用驼峰命名法

  1. // bad
  2. <Foo
  3. UserName='hello'
  4. phone_number={12345678}
  5. />
  6. // good
  7. <Foo
  8. userName='hello'
  9. phoneNumber={12345678}
  10. />

JSX 与括号

用括号包裹多行 JSX 标签

  1. // bad
  2. render () {
  3. return <MyComponent className='long body' foo='bar'>
  4. <MyChild />
  5. </MyComponent>
  6. }
  7. // good
  8. render () {
  9. return (
  10. <MyComponent className='long body' foo='bar'>
  11. <MyChild />
  12. </MyComponent>
  13. );
  14. }
  15. // good
  16. render () {
  17. const body = <div>hello</div>
  18. return <MyComponent>{body}</MyComponent>
  19. }

标签

当标签没有子元素时,始终时候自闭合标签

  1. // bad
  2. <Foo className='stuff'></Foo>
  3. // good
  4. <Foo className='stuff' />

如果控件有多行属性,关闭标签要另起一行

  1. // bad
  2. <Foo
  3. bar='bar'
  4. baz='baz' />
  5. // good
  6. <Foo
  7. bar='bar'
  8. baz='baz'
  9. />

书写顺序

在 Taro 组件中会包含类静态属性、类属性、生命周期等的类成员,其书写顺序最好遵循以下约定(顺序从上至下)

  1. static 静态方法
  2. constructor
  3. componentWillMount
  4. componentDidMount
  5. componentWillReceiveProps
  6. shouldComponentUpdate
  7. componentWillUpdate
  8. componentDidUpdate
  9. componentWillUnmount
  10. 点击回调或者事件回调 比如 onClickSubmit() 或者 onChangeDescription()
  11. render