IT이야기

react.js 인라인 스타일 모범 사례

cyworld 2022. 3. 9. 10:06
반응형

react.js 인라인 스타일 모범 사례

다음과 같이 대응 클래스에 스타일을 지정할 수 있다는 것을 알고 있다.

const MyDiv = React.createClass({
  render: function() {
    const style = {
      color: 'white',
      fontSize: 200
    };
    
    return <div style={style}> Have a good and productive day! </div>;
  }
});

모든 스타일링을 이런 식으로 하고, CSS 파일에 스타일이 전혀 지정되어 있지 않은 것을 목표로 해야 하는가?

아니면 인라인 스타일을 완전히 피해야 할까?

두 가지 모두를 약간 하는 것은 이상하고 지저분해 보인다. 스타일링을 조정할 때 두 곳을 확인해야 할 것이다.

"베스트 프랙티스"는 아직 많지 않다.인라인 스타일을 사용하는 사람들, 리액션 컴포넌트들은 여전히 많은 실험을 하고 있다.

다양한 접근 방식: 인라인 스타일 lib 비교 차트 대응

전부야, 아니면 전부야?

우리가 "스타일"이라고 부르는 것은 실제로 꽤 많은 개념을 포함한다.

  • 레이아웃 - 요소/구성 요소가 다른 요소와 연관되어 보이는 방식
  • 외관 - 요소/구성 요소의 특성
  • 동작 및 상태 — 요소/구성 요소가 지정된 상태로 표시되는 방식

주 스타일부터 시작

React는 이미 구성 요소의 상태를 관리하고 있으며, 이는 상태동작 스타일을 구성 요소 논리와 함께 코로케이션에 자연스럽게 적합하게 만든다.

조건부 상태 클래스로 렌더링할 구성 요소를 구축하는 대신 상태 스타일을 직접 추가하는 것을 고려하십시오.

// Typical component with state-classes
<li 
 className={classnames({ 'todo-list__item': true, 'is-complete': item.complete })} />


// Using inline-styles for state
<li className='todo-list__item'
 style={(item.complete) ? styles.complete : {}} />

클래스를 사용하여 외관을 스타일링하지만 더 이상 사용하지 않는다는 점에 유의하십시오..is-국가행동의 접두사 계급

우리는 사용할 수 있다.Object.assign(ES6) 또는_.extend여러 상태에 대한 지원을 추가하려면 다음과 같이 하십시오.

// Supporting multiple-states with inline-styles
<li 'todo-list__item'
 style={Object.assign({}, item.complete && styles.complete, item.due && styles.due )}>

사용자 정의 및 재사용 가능성

이제 우리가 사용하고 있으니Object.assign우리의 구성품을 다른 스타일과 함께 재사용하는 것은 매우 간단해진다.기본 스타일을 재정의하려면 다음과 같은 소품을 사용하여 콜 사이트에서 이를 수행할 수 있다.<TodoItem dueStyle={ fontWeight: "bold" } /> 다음과 같이 구현됨:

<li 'todo-list__item'
 style={Object.assign({},
         item.due && styles.due,
         item.due && this.props.dueStyles)}>

배치

개인적으로, 나는 인라인 레이아웃 스타일에 대한 설득력 있는 이유를 모르겠다.그곳에는 훌륭한 CSS 배치 시스템이 많이 있다.난 그냥 하나 쓸래.

즉, 레이아웃 스타일을 구성 요소에 직접 추가하지 마십시오.구성 요소를 레이아웃 구성 요소로 감싸십시오.여기 예가 있어요.

// This couples your component to the layout system
// It reduces the reusability of your component
<UserBadge
 className="col-xs-12 col-sm-6 col-md-8"
 firstName="Michael"
 lastName="Chan" />

// This is much easier to maintain and change
<div class="col-xs-12 col-sm-6 col-md-8">
  <UserBadge
   firstName="Michael"
   lastName="Chan" />
</div>

레이아웃 지원을 위해, 나는 종종 구성 요소를 설계되도록 노력한다.100% width, 그리고height.

외관

이곳은 '인라인형' 토론에서 가장 논쟁이 되는 분야다.궁극적으로, 그것은 JavaScript를 통해 여러분의 설계와 팀의 편안함에 달려있다.

한 가지 확실한 것은 도서관의 도움이 필요할 것이다.브라우저 상태(:hover:focus()), 그리고 미디어-쿼리는 생 리액션에서 고통스럽다.

나는 라듐을 좋아한다. 왜냐하면 라듐의 구문은 SASS의 구문을 모델링하기 위해서 고안된 것이기 때문이다.

코드조직

종종 모듈 밖에서 스타일 오브젝트를 볼 수 있다.작업관리 목록 구성 요소의 경우 다음과 같이 보일 수 있다.

var styles = {
  root: {
    display: "block"
  },
  item: {
    color: "black"

    complete: {
      textDecoration: "line-through"
    },

    due: {
      color: "red"
    }
  },
}

게터 기능

템플릿에 스타일 로직을 많이 추가하면(위에서 보듯이) 약간 지저분해질 수 있다.스타일을 계산하기 위해 getter 함수를 만드는 것을 좋아한다.

React.createClass({
  getStyles: function () {
    return Object.assign(
      {},
      item.props.complete && styles.complete,
      item.props.due && styles.due,
      item.props.due && this.props.dueStyles
    );
  },

  render: function () {
    return <li style={this.getStyles()}>{this.props.item}</li>
  }
});

더보기

나는 올해 초 리액션 유럽 에서 이 모든 것에 대해 더 자세히 논의했다.인라인 스타일 및 'CSS만 사용'이 가장 좋을 때.

도중에 새로운 발견을 하게 되어 기쁘다 :) 나를 위로 쳐줘 -> @chantastic

반응의 스타일 속성은 값이 객체, 즉 키 값 쌍이 될 것으로 예상한다.

style = {}그 안에 다른 물체가 있을 거야{float:'right'}잘 될 수 있도록 말이야

<span style={{float:'right'}}>Download Audit</span>

이것이 문제를 해결하길 바란다.

나는 React 구성 요소 내에서 인라인 스타일을 광범위하게 사용한다.구성 요소 내에서 스타일을 코로케이션하는 것이 훨씬 더 명확하다고 생각한다. 구성 요소가 어떤 스타일을 하고 어떤 스타일을 가지고 있지 않은지는 항상 분명하기 때문이다.게다가 Javascript의 모든 힘을 손에 넣음으로써 더욱 복잡한 스타일링 요구를 정말로 단순화시킨다.

나는 처음에는 확신하지 못했지만 몇 달 동안 그것에 손을 댄 후, 나는 완전히 변환되어 나의 모든 CSS를 인라인이나 다른 JS 주도 css 방식으로 변환하는 과정에 있다.

Facebook 직원과 React 기고자 "vjuux"의 이번 발표도 정말 도움이 된다. https://speakerdeck.com/vjeux/react-css-in-js

스타일 속성의 주요 목적은 동적 상태 기반 스타일이다.예를 들어, 일부 상태에 기반한 진행률 표시줄의 너비 스타일을 사용하거나 다른 상태에 기반한 위치 또는 가시성을 가질 수 있다.

JS의 스타일은 응용프로그램이 재사용 가능한 구성요소에 대한 맞춤형 스타일링을 제공할 수 없다는 제한을 가한다.이는 앞서 언급한 상황에서 완벽하게 받아들여지지만, 눈에 보이는 특성, 특히 색상을 바꿀 때는 그렇지 않다.

JSX의 스타일링은 HTML의 스타일링과 매우 유사하다.

HTML 사례:

div style="dv-color:빨간색; color:흰색"

JSX 사례:

div style={backgroundColor: '빨간색', 색상: '흰색' }}

James K Nelson은 그의 편지 "JavaScript로 스타일에 반응하지 말아야 하는 이유"에서 그것의 단점을 가진 인라인 스타일을 사용할 필요가 없다고 말한다.그의 진술은 적은/scss를 가진 오래된 지루한 CSS가 최선의 해결책이라는 것이다.CSS에 찬성하는 그의 논문은 다음과 같다.

  • 외적으로 확장 가능한
  • 분리 가능(모든 것을 덮어쓰는 스타일)
  • 디자이너다운

JSX 구문의 부울 기반 스타일링:

style={{display: this.state.isShowing ? "inherit" : "none"}}

내가 하는 일은 나의 재사용 가능한 구성요소 각각에 고유한 사용자 정의 요소 이름을 부여한 다음, 특히 그 구성요소에 대한 모든 스타일링 옵션과 함께 해당 구성요소에 대한 CSS 파일을 만드는 것이다.

var MyDiv = React.createClass({
  render: function() {
    return <custom-component style={style}> Have a good and productive day! </custom-component>;
  }
});

그리고 'custom-component.css' 파일에서 모든 항목은 사용자 지정 구성 요소 태그로 시작한다.

custom-component { 
   display: block; /* have it work as a div */
   color: 'white'; 
   fontSize: 200; 
} 
custom-component h1 { 
  font-size: 1.4em; 
}

그것은 당신이 관심의 분리에 대한 비판적 개념을 잃지 않는다는 것을 의미한다.보기 대 스타일.구성 요소를 공유하면 다른 사용자가 웹 페이지의 나머지 부분과 일치하도록 테마를 지정하는 것이 더 쉽다.

TLDR - css in js 솔루션(예: 감성 또는 스타일 구성 요소)을 사용하여 css와 js가 제공하는 최고의 css 및 js를 즐기십시오.

css 또는 scss 파일에서는 동적 스타일을 관리하기 어렵다.인라인 스타일 태그에서는 미디어 쿼리 또는 유사 선택기를 사용할 수 없다.

JS에서 CSS를 사용하면 양쪽의 장점을 모두 누릴 수 있다.Css in JS는 Raction이 HTML과 같은 CSS에 대한 것이다. 그것은 JS 코드의 객체나 문자열로서 당신의 css를 쓸 수 있게 하고, Javascript 생태계의 힘과 도구를 즐길 수 있게 한다.

오늘날까지 js-library에는 Emotion, Styled-Components, Radium 등 인기 있는 CSS가 몇 개 있다.


간단한 요소를 스타일링하기 위해 코드가 어떻게 보일지 비교해 봅시다.우리는 "헬로 월드" 디브를 데스크탑에서는 크게, 모바일에서는 작게 보여주기 위해 스타일링을 할 것이다.

스타일 속성 사용

return (
   <div style={{fontSize:24}} className="hello-world">
      Hello world
   </div>
)

스타일 태그에서는 미디어 조회가 가능하지 않기 때문에 className을 요소에 추가하고 css 규칙을 추가해야 할 것이다.

@media screen and (max-width: 700px){
   .hello-world {
      font-size: 16px; 
   }
}

Emotion의 10 CSS 태그 사용

return (
   <div
      css={{
         fontSize: 24, 
         [CSS_CONSTS.MOBILE_MAX_MEDIA_QUERY]:{
            fontSize: 16 
         }
      }
   >
      Hello world
   </div>
)

감정은 또한 스타일 구성 요소뿐만 아니라 템플릿 문자열을 지원한다.따라서 원하는 경우 다음과 같이 쓸 수 있다.

return (
   <Box>
      Hello world
   </Box>
)

const Box = styled.div`
   font-size: 24px; 
   ${CSS_CONSTS.MOBILE_MAX_MEDIA_QUERY}{
      font-size: 16px; 
   }
`

후드 뒤편 'CSS in JS'는 CSS 클래스를 사용한다.

모범 사례

다음은 권장하는 몇 가지 모범 사례:

  1. JS 솔루션에서 CSS 사용

  2. JS에서 스타일 코드를 구조화하는 것은 일반적으로 코드를 구조화하는 것과 거의 유사하다.예를 들면 다음과 같다.

  • 반복하는 스타일을 인식하여 한 곳에 쓴다.감정에는 다음과 같은 두 가지 방법이 있다.
// option 1 - Write common styles in CONSTANT variables
// styles.js
export const COMMON_STYLES = {
   BUTTON: css`
      background-color: blue; 
      color: white; 
      :hover {
         background-color: dark-blue; 
      }
   `
}

// SomeButton.js
const SomeButton = (props) => {
   ...
   return (
      <button
         css={COMMON_STYLES.BUTTON}
         ...
      >
         Click Me
      </button>
   )
}

// Option 2 - Write your common styles in a dedicated component 

const Button = styled.button`
   background-color: blue; 
   color: white; 
   :hover {
      background-color: dark-blue; 
   }   
`

const SomeButton = (props) => {
   ...
   return (
      <Button ...> 
         Click me
      </Button>
   )
}

  1. 리액션 코딩 패턴은 캡슐화된 컴포넌트들로, 컴포넌트를 제어하는 HTML과 JS는 하나의 파일로 작성된다.이 경우 해당 구성요소를 스타일링하는 css/style 코드가 속한다.

  2. 필요한 경우 구성 요소에 스타일링 받침대를 추가하십시오.이렇게 하면 자식 구성 요소에서 작성된 코드와 스타일을 재사용할 수 있으며 부모 구성 요소에 의해 특정 요구에 맞게 사용자 정의할 수 있다.

const Button = styled.button([COMMON_STYLES.BUTTON, props=>props.stl])

const SmallButton = (props)=>(
   <Button 
      ...
      stl={css`font-size: 12px`}
   >
      Click me if you can see me
   </Button>
)

const BigButton = (props) => (
   <Button
      ...
      stl={css`font-size: 30px;`}
   >
      Click me
   </Button>
)

과 번들 CSS, JS와 같은 번들러를 빌드에서 함께 사용하려는 경우, 애플리케이션 흐름을 어떻게 관리하느냐에 따라 달라진다.결국, 네 상황에 따라 결정을 내릴 수 있어!

큰 프로젝트에서 파일을 정리하는 것을 선호하는 나의 선호도는 CSS와 JS 파일을 분리하는 것이고, 공유하기가 더 쉬울 수 있고, UI 사람들이 CSS 파일을 그냥 거치기가 더 쉬울 수 있으며, 또한 전체 애플리케이션에 대해 훨씬 더 나은 파일을 구성할 수 있다!

항상 이렇게 생각하고, 개발 단계에서 모든 것이 제자리에 있는지 확인하고, 적절한 이름을 지정하고, 다른 개발자가 쉽게 찾을 수 있도록 하십시오...

내가 개인적으로 그것들을 섞는 것은 내 필요에 달려있다, 예를 들면...외부 css를 사용해 보십시오. 그러나 필요한 경우 Reaction도 스타일을 수용하며, 키 값을 가진 개체로 전달해야 합니다, 다음과 같은 경우:

import React from 'react';

const App = props => {
  return (
    <div className="app" style={{background: 'red', color: 'white'}}>  /*<<<<look at style here*/
      Hello World...
    </div>
  )
}

export default App;

나는 보통 각 리액션 구성 요소와 연결된 scs 파일을 가지고 있다.하지만, 나는 왜 당신이 논리적으로 구성 요소를 캡슐화하지 않고 그 안을 들여다보지 않는지 이유를 모르겠다.웹 컴포넌트도 비슷한데

구성에 따라 인라인 스타일링이 핫 재로드 기능을 제공할 수 있다.그 웹페이지는 스타일이 바뀔 때마다 즉시 갱신된다.이것은 내가 부품을 더 빨리 개발하는데 도움을 준다.그렇게 말했으므로, CSS + SCSS에 대한 핫 재로드 환경을 설정할 수 있을 것이다.

당신은 또한 StrCSS를 사용할 수 있다. 그것은 분리된 클래스 이름 등을 만든다.예시 코드는 다음과 같이 보일 것이다.Visual Studio Marketplace에서 VSCode 확장을 설치(선택 사항)하여 지원을 강조 표시하십시오!

출처: strcss

import { Sheet } from "strcss";
import React, { Component } from "react";

const sheet = new Sheet(`
  map button
    color green
    color red !ios
    fontSize 16
  on hover
    opacity .5
  at mobile
    fontSize 10
`);

export class User extends Component {
  render() {
    return <div className={sheet.map.button}>
      {"Look mom, I'm green!
      Unless you're on iOS..."}
    </div>;
  }
}

인라인 스타일을 사용할 수 있지만 모든 스타일링에서 인라인 스타일을 사용할 경우 몇 가지 제한이 있지만, CSS 사이비 선택기와 미디어 쿼리를 사용할 수 없다는 몇 가지 알려진 제한 사항이 있다.

라듐을 이용해서 해결할 수 있지만 그래도 프로젝트가 점점 더 번거로워지는 것 같아.

나는 CSS 모듈을 사용하는 것을 추천한다.

CSS 모듈을 사용하면 CSS 파일에 CSS를 자유롭게 쓸 수 있으며 명명 충돌에 대해 걱정할 필요가 없으므로 CSS 모듈에 의해 관리된다.

이 방법의 장점은 특정 구성요소에 스타일링 기능을 제공한다는 것이다.이렇게 하면 다음 개발자가 당신의 프로젝트에서 작업할 수 있도록 훨씬 더 유지 관리 가능한 코드와 읽기 쉬운 프로젝트 아키텍처를 만들 것이다.

일부 구성요소의 경우 인라인 스타일을 사용하는 것이 더 쉽다.또한 컴포넌트 스타일을 애니메이션화하기 위해 (CSS가 아닌 Javascript를 사용하므로) 보다 쉽고 간결하다는 것을 알게 되었다.

독립형 구성요소의 경우, '스프레드 오퍼레이터'나 '...'를 사용한다. 나에게는, 그것은 분명하고, 아름답고, 좁은 공간에서 작동한다.여기 내가 그것의 장점을 보여주기 위해 만든 약간의 로딩 애니메이션이 있다.

<div style={{...this.styles.container, ...this.state.opacity}}>
    <div style={{...this.state.colors[0], ...this.styles.block}}/>
    <div style={{...this.state.colors[1], ...this.styles.block}}/>
    <div style={{...this.state.colors[2], ...this.styles.block}}/>
    <div style={{...this.state.colors[7], ...this.styles.block}}/>
    <div style={{...this.styles.block}}/>
    <div style={{...this.state.colors[3], ...this.styles.block}}/>
    <div style={{...this.state.colors[6], ...this.styles.block}}/>
    <div style={{...this.state.colors[5], ...this.styles.block}}/>
    <div style={{...this.state.colors[4], ...this.styles.block}}/>
  </div>

    this.styles = {
  container: {
    'display': 'flex',
    'flexDirection': 'row',
    'justifyContent': 'center',
    'alignItems': 'center',
    'flexWrap': 'wrap',
    'width': 21,
    'height': 21,
    'borderRadius': '50%'
  },
  block: {
    'width': 7,
    'height': 7,
    'borderRadius': '50%',
  }
}
this.state = {
  colors: [
    { backgroundColor: 'red'},
    { backgroundColor: 'blue'},
    { backgroundColor: 'yellow'},
    { backgroundColor: 'green'},
    { backgroundColor: 'white'},
    { backgroundColor: 'white'},
    { backgroundColor: 'white'},
    { backgroundColor: 'white'},
    { backgroundColor: 'white'},
  ],
  opacity: {
    'opacity': 0
  }
}

EDIT 2019 11월

업계(포춘 500대 기업)에서 일하는 나는 인라인 스타일링을 할 수 없다.우리 팀에서는 인라인 스타일은 판독이 불가능하고 유지 관리가 불가능하다고 판단했다.그리고 인라인 스타일이 어떻게 애플리케이션 지원을 완전히 견딜 수 없게 만드는지 직접 본 후에, 나는 동의해야 한다.나는 인라인 스타일을 완전히 단념한다.

인라인 스타일의 문제는 이를 허용하지 않는 CSP(Content Security Policy)가 보편화되고 있다는 점이다.따라서 인라인 스타일을 완전히 피하는 것이 좋다.

업데이트: 더 자세히 설명하자면 CSP는 페이지에 나타날 수 있는 내용을 제한하는 서버가 보내는 HTTP 헤더 입니다.개발자가 사이트를 제대로 코드화하지 않으면 공격자가 장난꾸러기 짓을 못하게 막는 것은 서버에 적용할 수 있는 추가 완화일 뿐이다.

이러한 제한사항의 목적은 XSS(사이트 간 스크립팅) 공격을 중지하는 것이다.XSS는 공격자가 자신의 javascript를 당신의 페이지에 포함시키는 방법을 알아내는 곳이다(예를 들어, 내가 내 사용자 이름을 만든 경우).bob<SCRIPT>alert("hello")</SCRIPT>그리고 나서 댓글을 달면, 당신은 페이지를 방문하면, 그것이 경고를 보여서는 안 된다.개발자는 사용자가 이러한 콘텐츠를 사이트에 추가하도록 하는 기능을 거부해야 하지만, 만약 그들이 실수를 했을 때를 대비하여 CSP는 페이지가 로딩되지 않도록 차단한다.script>꼬리표를 달다

CSP는 개발자들이 실수했을 경우 공격자가 그 사이트를 방문하는 사람들에게 문제를 일으킬 수 없도록 하기 위한 추가적인 보호 수준에 불과하다.

그럼 모든 게 XSS지만 공격자가 포함시킬 수 없다면?<script>태그 그러나 포함할 수 있음<style>태그 또는 포함style=태그에 있는 매개 변수?그러면 그는 당신이 속아서 잘못된 단추나 다른 문제를 클릭하도록 사이트의 모양을 바꿀 수 있을지도 모른다.이것은 훨씬 덜 걱정거리지만, 여전히 피할 수 있는 일이고, CSP는 당신을 위해 그렇게 한다.

CSP 사이트를 테스트하기 위한 좋은 리소스는 https://securityheaders.io/이다.

CSP에 대한 자세한 내용은 http://www.html5rocks.com/en/tutorials/security/content-security-policy/을 참조하십시오.

2020년 업데이트:동영상에서 원래 승인된 답변에서 지적한 대로 전환(아직도 관련성이 있음)할 때, 이미 힘든 일을 해놓고 팀을 죽이지 않는 도서관을 이용하는 것이 가장 좋은 방법이다.또한 트렌드에 대한 감각을 얻기 위해서 이것은 매우 도움이 되는 차트다.이것에 대한 내 자신의 연구를 한 후, 나는 새로운 프로젝트에 Emotion을 사용하기로 선택했고 그것은 매우 유연하고 확장 가능한 것으로 증명되었다.

2015년부터 가장 많이 보급된 답변이 현재 유지 보수 모드로 강등된 라듐을 추천했다는 점에서 볼 수 있다.그래서 대안 목록을 추가하는 것이 타당해 보인다.라듐이 단종된 그 게시물은 몇 개의 도서관을 암시한다.연결된 각 사이트에는 쉽게 사용할 수 있는 예가 있으므로 여기에 코드를 복사하여 붙여넣는 것을 삼가겠다.

  • 다른 것들 중에서도 스타일 구성 요소들에 의해 "감동된" 감정은 js의 스타일을 사용하고 프레임워크에 구애받지 않을 수 있지만, 확실히 그것의 리액션 라이브러리를 홍보한다.이 게시물은 감성이 최신 상태로 유지되었다.
  • 스타일 구성 요소는 유사하며 감정과 동일한 특징을 많이 제공한다.또한 적극적으로 유지되고 있다.감정 구성 요소와 스타일 구성 요소 모두 구문이 유사하다.그것은 반응 컴포넌트와 함께 작동하도록 특별히 제작되었다.
  • JSS 그러나 프레임워크 패키지 중 React-JSS라는 많은 프레임워크 패키지가 있지만 프레임워크에 구애받지 않는 Js의 스타일에 대한 또 다른 옵션이다.

구성요소로부터 일부 요소를 스타일링해야 하는 경우도 있지만, 구성요소를 하나만 표시하거나 스타일이 너무 적게 표시해야 하는 경우에는 CSS 클래스를 사용하는 대신 인라인 스타일을 reaction js로 사용한다. reactionjs 인라인 스타일은 HTML 인라인 스타일과 동일하지만 속성 이름이 약간 다르다.

스타일={prop:"value"}}}을(를) 사용하여 원하는 태그에 스타일 작성

import React, { Component } from "react";
    import { Redirect } from "react-router";

    class InlineStyle extends Component {
      constructor(props) {
        super(props);
        this.state = {};
      }

      render() {
        return (
          <div>
            <div>
              <div
                style={{
                  color: "red",
                  fontSize: 40,
                  background: "green"
                }}// this is inline style in reactjs
              >

              </div>
            </div>
          </div>
        );
      }
    }
    export default InlineStyle;

어쨌든 인라인 css는 절대 권장되지 않는다.우리는 JSS에 기반을 둔 우리 프로젝트에 스타일 컴포넌트를 사용했다.구성요소에 동적 클래스 이름을 추가하여 css 재정의를 보호한다.전달된 소품에 따라 css 값을 추가할 수도 있다.

나는 스타일 구성요소를 사용하는 것을 선호한다.그것은 디자인을 위한 더 나은 해결책을 제공한다.

import React, { Component, Fragment } from 'react'
import styled from 'styled-components';

const StyledDiv = styled.div`
    display: block;
    margin-left: auto;
    margin-right: auto;
    font-size:200; // here we can set static
    color: ${props => props.color} // set dynamic color by props
`;

export default class RenderHtml extends Component {
    render() {
        return (
            <Fragment>
                <StyledDiv color={'white'}>
                    Have a good and productive day!
                </StyledDiv>
            </Fragment>
        )
    }
}

참조URL: https://stackoverflow.com/questions/26882177/react-js-inline-style-best-practices

반응형