React组件传值

84 阅读1分钟

1.用props

父组件

图片.png

子组件

图片.png

2.用Context(类似于中间件,上下文这种),可以为我们提供一个全局对象。

2.1首先,创造一个content.js文件

图片.png

2.2在需要进行组件通讯的两个组件中引入这个content.js文件

图片.png

图片.png

2.3第二种接收方法,使用contextType,其中this.context取值是固定写法

图片.png

3.eventBus

3.1下载events

yarn add -D events

3.2创造event.js这个文件导入events

图片.png

3.3在需要发送数据的文件导入event.js,并通过eventBus.emit()进行发送。

图片.png

3.4 用eventBus.addListener进行监听。

图片.png

4.使用prop-types进行参数校验

图片.png

//15以后的版本我们的prop-types是另外的包,需要手动下载
yarn add -D prop-types
// 下载完成后在需要校验的组件中引入
import PropTypes from 'prop-types'

// 使用语法:组件名.propTypes添加一个属性,属性值为对象
Son.propTypes = {
    name: PropTypes.string.isRequired, // 给isRequired属性代表的必传项,不传就会报错.
    age: PropTypes.number
}

// 还可以使用defaultProps指定它的默认值,那么我们调用子组件的时候不传值也不会报错
Son.defaultProps = {
    name: 'jianan',
    age: 18
}

图片.png