Skip to content

Commit

Permalink
docs(spec-for-taro): 在不影响规范的前提下修正 Markdown 空行,代码块空格、制表符等问题
Browse files Browse the repository at this point in the history
  • Loading branch information
Garfield550 committed Mar 11, 2019
1 parent 957d106 commit 51187d8
Showing 1 changed file with 31 additions and 43 deletions.
74 changes: 31 additions & 43 deletions docs/spec-for-taro.md
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,6 @@ const y = 'hello \'world\''
const z = `hello 'world'`
```


#### 代码块中避免多余留白

```javascript
Expand All @@ -93,7 +92,7 @@ if (user) {
const name = getName()

}

if (user) {
const name = getName() // ✓ 正确
}
Expand Down Expand Up @@ -163,7 +162,7 @@ typeof !admin // ✓ 正确
```javascript
//comment // ✗ 错误
// comment // ✓ 正确

/*comment*/ // ✗ 错误
/* comment */ // ✓ 正确
```
Expand Down Expand Up @@ -285,32 +284,30 @@ var noVar = 'hello, world' // ✗ 错误,请使用 const/let 定义变量
// ✓ 正确
const silent = true
let verbose = true

// ✗ 错误
const silent = true, verbose = true

// ✗ 错误
let silent = true,
verbose = true
```


#### 不要重复声明变量

```javascript
let name = 'John'
let name = 'Jane' // ✗ 错误

let name = 'John'
name = 'Jane' // ✓ 正确
```


#### 不要使用 undefined 来初始化变量

```javascript
let name = undefined // ✗ 错误

let name
name = 'value' // ✓ 正确
```
Expand Down Expand Up @@ -341,7 +338,6 @@ name = name // ✗ 错误

### 基本类型


#### 不要省去小数点前面的 0

```javascript
Expand Down Expand Up @@ -394,7 +390,7 @@ const person = {
this._name = value
}
}

const person = {
set name (value) {
this._name = value
Expand Down Expand Up @@ -454,9 +450,9 @@ const user = {
name: 'Jane Doe', age: 30,
username: 'jdoe86' // ✗ 错误
}

const user = { name: 'Jane Doe', age: 30, username: 'jdoe86' } // ✓ 正确

const user = {
name: 'Jane Doe',
age: 30,
Expand All @@ -478,13 +474,13 @@ const user = { name: 'John Doe' } // ✓ 正确
```javascript
function foo (n) {
if (n <= 0) return

arguments.callee(n - 1) // ✗ 错误
}

function foo (n) {
if (n <= 0) return

foo(n - 1)
}
```
Expand All @@ -495,7 +491,7 @@ function foo (n) {
function sum (a, b, a) { // ✗ 错误
// ...
}

function sum (a, b, c) { // ✓ 正确
// ...
}
Expand All @@ -507,7 +503,7 @@ function sum (a, b, c) { // ✓ 正确
const name = function () {
getName()
}.bind(user) // ✗ 错误

const name = function () {
this.getName()
}.bind(user) // ✓ 正确
Expand Down Expand Up @@ -565,7 +561,7 @@ let config = new Object() // ✗ 错误

```javascript
const getName = function () { }() // ✗ 错误

const getName = (function () { }()) // ✓ 正确
const getName = (function () { })() // ✓ 正确
```
Expand All @@ -582,7 +578,6 @@ function* helloWorldGenerator() { // ✗ 错误
}
```


### 正则

#### 正则中不要使用控制符
Expand All @@ -596,7 +591,7 @@ const pattern = /\x20/ // ✓ 正确

```javascript
const regexp = /test value/ // ✗ 错误

const regexp = /test {3}value/ // ✓ 正确
const regexp = /test value/ // ✓ 正确
```
Expand All @@ -608,12 +603,11 @@ const regexp = /test value/ // ✓ 正确
```javascript
class animal {}
const dog = new animal() // ✗ 错误

class Animal {}
const dog = new Animal() // ✓ 正确
```


#### 避免对类名重新赋值

```javascript
Expand All @@ -629,7 +623,7 @@ class Dog {
super() // ✗ 错误
}
}

class Dog extends Mammal {
constructor () {
super() // ✓ 正确
Expand Down Expand Up @@ -694,7 +688,7 @@ const character = new Character() // ✓ 正确
```javascript
import { myFunc1 } from 'module'
import { myFunc2 } from 'module' // ✗ 错误

import { myFunc1, myFunc2 } from 'module' // ✓ 正确
```

Expand All @@ -705,8 +699,6 @@ import { config as config } from './config' // ✗ 错误
import { config } from './config' // ✓ 正确
```



### 语句

#### 避免在 return 语句中出现赋值语句
Expand Down Expand Up @@ -747,7 +739,6 @@ function doSomething () {
}
```


### 逻辑与循环

#### 始终使用 === 替代 ==
Expand Down Expand Up @@ -818,12 +809,12 @@ if (options.quiet !== true)
```javascript
// ✓ 正确
const location = env.development ? 'localhost' : 'www.api.com'

// ✓ 正确
const location = env.development
? 'localhost'
: 'www.api.com'

// ✗ 错误
const location = env.development ?
'localhost' :
Expand All @@ -843,11 +834,11 @@ if (age === 42) { } // ✓ 正确
if (false) { // ✗ 错误
// ...
}

if (x === 0) { // ✓ 正确
// ...
}

while (true) { // ✓ 正确
// ...
}
Expand Down Expand Up @@ -886,15 +877,15 @@ switch (filter) {
case 2:
doSomethingElse()
}

switch (filter) {
case 1:
doSomething()
break // ✓ 正确
case 2:
doSomethingElse()
}

switch (filter) {
case 1:
doSomething()
Expand All @@ -911,7 +902,7 @@ const result = true
if (!!result) { // ✗ 错误
// ...
}

const result = true
if (result) { // ✓ 正确
// ...
Expand All @@ -924,7 +915,6 @@ if (result) { // ✓ 正确
if (doSomething(), !!test) {} // ✗ 错误
```


### 错误处理

#### 不要丢掉异常处理中 err 参数
Expand Down Expand Up @@ -952,7 +942,7 @@ try {
} catch (e) {
e = 'new value' // ✗ 错误
}

try {
// ...
} catch (e) {
Expand Down Expand Up @@ -985,7 +975,6 @@ try {
asyncTask('google.com').catch(err => console.log(err)) // ✓ 正确
```


## 组件及 JSX 书写规范

### 基本书写
Expand Down Expand Up @@ -1024,7 +1013,7 @@ import { View, Input } from '@tarojs/components'
class MyComponent extends Component {
render () {
return (
<View className='test'> // ✓ 正确
<View className='test'> // ✓ 正确
<Text className="test_text">12</Text> // ✗ 错误
</View>
)
Expand Down Expand Up @@ -1060,6 +1049,7 @@ class MyComponent extends Component {
```

#### 空格使用

> 终始在自闭合标签前面添加一个空格
```javascript
Expand Down Expand Up @@ -1178,7 +1168,7 @@ import { View } from '@tarojs/components'
class MyComponent extends Component {
render () {
return (
<View className='test'> // ✓ 正确
<View className='test'> // ✓ 正确
<Text>12</Text> // ✗ 错误
</View>
)
Expand Down Expand Up @@ -1591,13 +1581,12 @@ const element = array.map(item => {

**解决方案**

使用 [`bind`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/bind) [类参数](https://babeljs.io/docs/plugins/transform-class-properties/)绑定函数
使用 [`bind`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/bind)[类参数](https://babeljs.io/docs/plugins/transform-class-properties/)绑定函数

```javascript
<View onClick={this.props.handleClick.bind(this)} />
```


#### 不允许在 JSX 参数(props)中传入 JSX 元素

以下代码会被 ESLint 提示警告,同时在 Taro(小程序端)也不会有效:
Expand Down Expand Up @@ -1642,7 +1631,6 @@ const obj = { id, ...rest }

除非微信小程序开放更多能力,目前看不到能支持该特性的可能性


#### 不支持无状态组件

以下代码会被 ESLint 提示警告,同时在 Taro(小程序端)也不会有效:
Expand Down

0 comments on commit 51187d8

Please sign in to comment.