react声明组件

学redux的时候看到文档是这样声明组件的,难道不是要继承Component吗

import React from 'react'
import Footer from './Footer'
import AddTodo from '../containers/AddTodo'
import VisibleTodoList from '../containers/VisibleTodoList'

const App = () => (
  <div>
    <AddTodo />
    <VisibleTodoList />
    <Footer />
  </div>
)

export default App

还有一个小问题是components和containers到底啥区别呀

--------------------补充----------------------
我看他的容器也是这样定义组件的,那他是不是也是没有生命周期的组件

import React from 'react'
import { connect } from 'react-redux'
import { addTodo } from '../actions'

const AddTodo = ({ dispatch }) => {
  let input

  return (
    <div>
      <form onSubmit={e => {
        e.preventDefault()
        if (!input.value.trim()) {
          return
        }
        dispatch(addTodo(input.value))
        input.value = ''
      }}>
        <input ref={node => input = node} />
        <button type="submit">
          Add Todo
        </button>
      </form>
    </div>
  )
}

export default connect()(AddTodo)

然后他的
export default connect()(AddTodo)
是啥意思

阅读 1.3k
1 个回答

1.这就是函数式组件,没有生命周期的纯组件,继承components的组件有生命周期和内部的state
2.components和containers都是react的组件,只不过这里的components一般指纯组件,就是没有内部state。页面展示的数据都是来源于父组件,也就是containers组件,containers会处理复杂的逻辑和数据处理,通过props把数据传递给子组件。一个简单的例子。一个展示todolist的组件的containers负责通过ajax拿到todolist。传递给纯展示的components组件

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题