React组件的定义、渲染和传值总结
一、组件的定义
1、使用JavaScript函数定义 Welcome.js
import React from 'react';function Welcome() {
return (
<div>我是一个组件</div>
);
}
export default Welcome;
2、使用 ES6 class 定义 Welcome.js
import React from 'react';class Welcome extends React.Component {
render() {
return (
<div>我是一个组件</div>
);
}
}
export default Welcome;
二、组件的渲染
index.js 文件:
import React from 'react';import ReactDOM from 'react-dom';
import Welcome from './Welcome';
ReactDOM.render(
<Welcome />,
document.getElementById('root')
);
三、复合组件
1、通过创建多个组件来合成一个组件
import React from 'react';function Name(props) {
return (
<p>我是{props.name}</p>
);
}
function Age(props) {
return (
<p>我{props.age}岁</p>
);
}
function Sex(props) {
return (
<p>我是一个{props.sex}人</p>
);
}
function Me() {
return (
<div>
<Name name="海牛大大" />
<Age age="22" />
<Sex sex="男" />
</div>
);
}
export default Me;
2、渲染合成的组件
import React from 'react';import ReactDOM from 'react-dom';
import Me from './Me';
ReactDOM.render(
<Me />,
document.getElementById('root')
);
运行结果:
四、组件之间的传值
1、父组件传给子组件
父组件通过自定义属性进行传值,这里以传 lastName 的值为例:
Parent.js
import React from 'react'import Child from './Child'
class Parent extends React.Component {
render() {
return (
<div>
<Child lastName='Liu' />
</div>
)
}
}
export default Parent;
子组件通过 this.props 获取,这里接收父组件传过来 lastName 的值
Child.js
import React from 'react'class Child extends React.Component {
constructor(props) {
super(props);
this.state = {}
}
render() {
return (
<div>
<h1>My lastname is {this.props.lastName}</h1>
</div>
)
}
}
export default Child;
渲染父组件:
ReactDOM.render(<div><Parent /></div>,
document.getElementById('root')
);
运行结果:
2、子组件传给父组件
利用回调来完成,父组件传递一个函数,这里以传 fn 为例
import React from 'react'import Child from './Child'
class Parent extends React.Component {
constructor(props) {
super(props);
this.state = {
fontColor: ''
}
}
render() {
return (
<div>
<h1 style={{color:this.state.fontColor}}>标题</h1>
<Child fn={(e) => this.setState({fontColor: e})} />
</div>
)
}
}
export default Parent;
子组件将要传递的值作为参数,并调用父组件传递的函数,这里将 red 作为参数调用
import React from 'react'class Child extends React.Component {
constructor(props) {
super(props);
this.state = {}
}
render() {
return (
<div>
<button onClick={(e) => this.props.fn('red')}>
单击改变标题颜色
</button>
</div>
)
}
}
export default Child;
运行结果:
3、兄弟组件之间的传值
A子组件先传给父组件,父组件再传给B子组件
以上是 React组件的定义、渲染和传值总结 的全部内容, 来源链接: utcz.com/z/383748.html