Пропси в реакті

Dev IT JavaScript Реакт 264

import React from 'react'
import PropTypes from 'prop-types'

// об'єкт міг би називатися як завгодно, але за домовленністю має бути саме props
function Header(props){  
    return (
        <header style={{
margin: props.margin, 
padding: props.padding, 
border: props.border, 
color: props.color, 
background: props.background}}>
            { props.content + '... ' }
        </header>
    )
}

// дефолтні значення полів нашого об'єкта
Header.defaultProps = {
    margin: '5px',
    padding: '10px',
    border: '2px solid tomato',
    color: 'green',
    background: 'yellowgreen'
}

// типи для полів нашого об'єкта
Header.propTypes = {
    margin: PropTypes.string,
    padding: PropTypes.string,
    border: PropTypes.string,
    color: PropTypes.string,
    background: PropTypes.string,
}

export default Header

Ідентично (але такий стиль написання більш компактний та зрозумілий):

import React from 'react'
import PropTypes from 'prop-types'

function Header({ margin, padding, border, color, background, content }){
    return (
        <header style={{ margin, padding, border, color, background }}>
            { `${content} ...` }
        </header>
    )
}

Header.defaultProps = {
    margin: '5px',
    padding: '10px',
    border: '2px solid tomato',
    color: 'green',
    background: 'yellowgreen'
}

Header.propTypes = {
    margin: PropTypes.string,
    padding: PropTypes.string,
    border: PropTypes.string,
    color: PropTypes.string,
    background: PropTypes.string,
}

export default Header