HTTP GET 请求

有时,组件需要从远程端点(例如 REST API)呈现一些数据。一个标准的做法是使 componentDidMount 法这样的调用。

这是一个例子,使用 superagent 作为 AJAX 助手:

import React from 'react'
import request from 'superagent'

class App extends React.Component {
  constructor () {
    super()
    this.state = {}
  }
  componentDidMount () {
    request
      .get('/search')
      .query({ query: 'Manny' })
      .query({ range: '1..5' })
      .query({ order: 'desc' })
      .set('API-Key', 'foobar')
      .set('Accept', 'application/json')
      .end((err, resp) => {
        if (!err) {
          this.setState({someData: resp.text})
        }
      })
  },
  render() {
    return (
      <div>{this.state.someData || 'waiting for response...'}</div>
    )
  }
}

React.render(<App />, document.getElementById('root'))

可以通过在 request 对象上调用适当的方法启动请求,然后调用 .end() 发送请求。设置标题字段很简单,使用字段名称和值调用 .set()

.query() 方法接受对象,当与 GET 方法一起使用时将形成查询字符串。以下将产生路径/search?query=Manny&range=1..5&order=desc

POST 请求

request.post('/user')
  .set('Content-Type', 'application/json')
  .send('{"name":"tj","pet":"tobi"}')
  .end(callback)

有关更多详细信息,请参阅 Superagent 文档