react --props

오미희·2021년 7월 18일
0

react

목록 보기
9/15

props============================================
// 값 전달

<script type="text/babel">

function Welcome(props){
    // name="algml"를 props인자를 통해 받음
    return(
            <p>hello {props.name}</p>
    )
}
ReactDOM.render(
    <Welcome name="algml"/>,
    // props를 통해 name="algml"를 Welcome(props)로 전달 
    document.querySelector('#root')
)

</script>

[출력물]

components======================================
// 장점 => 재사용에 용이
*컴포넌트 이름의 첫글자는 항상 대문자로 작성

<script type="text/babel">

function Welcome(props){
    return(
        <>
            <p>hello, {props.name}</p>
        </>
    )
}
function App(){
    return(
        <>
            <Welcome name="mihee"/>
            <Welcome name="algml"/>
            <Welcome name="womaixin"/>
        </>
    )
}
ReactDOM.render(
    <App/>,
    document.querySelector('#root')
)

</script>

[출력물]

컴포넌트 나누기=======================================

// 나누기 전의 코드 => 재사용 어려움
<script type="text/babel">

function Comment(props){
    return(
        <div className="Comment">
            <div className="UserInfo">
                <img className="Avatar"
                    src={props.author.avatarUrl}
                    alt={props.author.name}
                />
                <div className="UserInfo=name">
                    {props.author.name}
                </div>
            </div>
            <div className="Comment-text">
                {props.text}
            </div>
            <div className="Comment-date">
                {formatDate(props.date)}
            </div>
        </div>
    )
}
</script>

// 각각의 컴포넌트로 나눈 후 => 재사용에 더욱 용이 
<script type="text/babel">

function Avatar(props){
    return(
        <img className="Avatar"
            src={props.user.avatarUrl}
            alt={props.user.name}
        />
    )
}
function UserInfo(props){
    return(
        <div className="UserInfo">
            <Avatar user={props.user}/>
            <div className="UserInfo-name">
                {props.user.name}
            </div>
        </div>
    )
}
function Comment(props){
    return(
        <div className="Comment">
            <UserInfo user={props.author}/>
            <div className="Comment-text">
                {props.text}
            </div>
            <div className="Comment-date">
                {formatDate(props.date)}
            </div>
        </div>
    )
}
</script>
profile
안녕하세요

0개의 댓글