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