React[004] Component+数据传递
coding
src/components/Header/index.js
import React from 'react'
export default function Header() {
return (
<h1>
待办事项列表
</h1>
)
}
src/components/index.js
export {default as Header} from './Header'
src/App.js
import React, { Component } from 'react'
import {
Header
} from './components'
export default class App extends Component {
render() {
return (
<>
<h1>app</h1>
<Header />
</>
)
}
}
src/index.js
import React from 'react'
import {render} from 'react-dom'
import App from './App'
render(
<App/>,
document.querySelector('#root')
)
数据传递
App.js
import React, { Component } from 'react'
import {
TodoHeader,
TodoInput,
TodoList
} from './components'
export default class App extends Component {
// state = {
// title: '待办事项'
// }
constructor() {
super()
this.state = {
title: '待办事项',
desc: '今日是,今日比'
}
}
render() {
return (
<>
<h1>app</h1>
<TodoHeader
desc={this.state.desc}
x={1}
y={2}
z={3}
>
{this.state.title}
</TodoHeader>
<TodoInput btnText="Add" />
<TodoList />
</>
)
}
}
components/TodoHeader/index.js
import React from 'react'
import PropTypes from 'prop-types'
export default function TodoHeader(props) {
console.log(props)
return (
<>
<h1>
{props.children}
</h1>
<h3>
{props.desc}
</h3>
<p> {props.x + props.y} </p>
</>
)
}
TodoHeader.propTypes = {
desc: PropTypes.string,
x: PropTypes.number,
y: PropTypes.number,
z: PropTypes.number.isRequired,
children: PropTypes.string.isRequired
}
评论列表