์ฌ๊ธฐ์ ์ฌ์ฉ์ ์ค๋ฅ๊ฐ ์์ ์ ์์ง๋ง ์๋ ์๋ ์์ต๋๋ค. ์ค์ํ ๊ฒฝ์ฐ ECMA2015 + babel์ ์ฌ์ฉํฉ๋๋ค.
return (
<div className={curtainClasses} style={this.props.curtainClass ? null : curtainStyle} onClick={this.props.clickHandler}>
<div key="_srm-modal" style={this.props.modalClass ? null : modalStyle} className={modalClasses}>
{this.props.children}
</div>
</div>
);
๋ ๋๋ง(๋ด ์ฑ์์):
<div class="_srm-curtain modal-background" data-reactid=".0.0.1.1.0.0">
<div class="modal-pod" data-reactid=".0.0.1.1.0.0.$_srm-modal">
<h1 data-reactid=".0.0.1.1.0.0.$_srm-modal.0">Hello World</h1>
</div>
</div>
๊ทธ๋ฌ๋ CSSTransitionGroup์ ์๋ง์ผ๋ก ๋ง๋ค๋ ค๊ณ ํ๋ฉด:
let ReactCSSTransitionGroup = React.addons.CSSTransitionGroup;
return (
<div className={curtainClasses} style={this.props.curtainClass ? null : curtainStyle} onClick={this.props.clickHandler}>
<ReactCSSTransitionGroup transitionName={this.props.transitionName}>
<div key="_srm-modal" style={this.props.modalClass ? null : modalStyle} className={modalClasses}>
{this.props.children}
</div>
</ReactCSSTransitionGroup>
</div>
);
๋ค์ ์ถ๊ฐ ๋ฒ์๋ก โโ๋ ๋๋งํฉ๋๋ค.
<div class="_srm-curtain modal-background" data-reactid=".0.0.1.1.0.0">
<span data-reactid=".0.0.1.1.0.0.0">
<div class="modal-pod" data-reactid=".0.0.1.1.0.0.0.$=1$_srm-modal">
<h1 data-reactid=".0.0.1.1.0.0.0.$=1$_srm-modal.0">Hello World</h1>
</div>
</span>
</div>
๋ด๊ฐ ๋ญ๊ฐ ์๋ชปํ๊ณ ์๋ค๋ฉด ์ฌ๋ฐ๋ฅธ ๋ฐฉํฅ์ผ๋ก ๋๋ฅผ ๊ฐ๋ฆฌ์ผ์ฃผ์ธ์! ๋ด๊ฐ ๋์น ๋ฌธ์์ ๋ฉ๋ชจ๊ฐ ์์์ ์๋ ์์ต๋๋ค!
๊ณ ๋ง์ ์๋ค์, ๊ณ์ํด์ ๋ฉ์ง ์ผ์ ํด!
๋๋ ์ด๊ฒ์ด CSSTransitionGroup
์ ๋ฌธ์ํ๋ ๋์ ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
์ ๋ง ๊ณ ๋ง์ต๋๋ค! ๋๋ ๊ทธ ๋ผ์ธ์ ๋์ณค๋ค! @garetht
์ด ๋ฌธ์ ๋ ์ข ๋ฃ๋์์ ์ ์์ง๋ง ๊ตฌ์ฑ ์์ ์์ฑ์ผ๋ก React.Fragment๋ฅผ ์ฌ์ฉํ๋ฉด ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋์์ต๋๋ค.
<ReactCSSTransitionGroup
component={React.Fragment}
transitionName="slide"
transitionEnterTimeout={500}
transitionLeaveTimeout={500}
>
....
</ReactCSSTransitionGroup>
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
์ด ๋ฌธ์ ๋ ์ข ๋ฃ๋์์ ์ ์์ง๋ง ๊ตฌ์ฑ ์์ ์์ฑ์ผ๋ก React.Fragment๋ฅผ ์ฌ์ฉํ๋ฉด ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋์์ต๋๋ค.