React组件的定义、渲染和传值总结

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

回到顶部