Styled Componentsv4 정보
여기서 Styled Componentsv4는 매우 편리합니다. 제가 소개해 드리겠습니다.
훨씬 가벼워졌다
createGlobalStyle
injectGlobal
대신 createGlobalStyle
라는 API를 완성했다.일반적으로 스타일 components는 자동으로 다른 구성 요소에서 분리되어 로컬 범위가 됩니다.
좋은 곳이지만 바디의 값을 통일적으로 바꾸고 싶을 때 곤란합니다.
바디 같은 스타일링을 하고 싶을 때 편해요.
원래
injectGlobal
가 있었지만 동적 업데이트와 열재부팅을 할 수 없고 구성 요소로 사용할 수 없습니다.import React from 'react';
import styled , { createGlobalStyle } from 'styled-components';
const GlobalStyle = createGlobalStyle`
body {
color: ${props => (props.whiteColor ? 'white' : 'black')};
background: #333;
}
`
export default () => <React.Fragment>
<GlobalStyle whiteColor/>
Hello React
</React.Fragment>
"as" prop
스타일의 구성 요소를 다른 탭에 사용할 때 사용합니다.
대체 기능
.withComponent
.import React from 'react';
import styled from 'styled-components';
const GrayArea = styled.div`
background: #333;
color:white;
`
export default () => <React.Fragment>
<GrayArea as='button' onClick={() => alert('It works!')}>
Hello React
</GrayArea>
</React.Fragment>
그레이아레는 div로 제작됐으나 사용as='button'
하면 button으로 사용할 수 있다.extend 폐지
구성 요소를 확장하려면
Comp.extend
로 대체styled(Comp)
합니다.import React from 'react';
import styled from 'styled-components';
const Button = styled.button`
background: #333;
color: white;
`
const RedButton = styled(Button)`
background: red;
`
export default () => <React.Fragment>
<RedButton onClick={() => alert('It works!')}>
Hello React
</RedButton>
</React.Fragment>
전체 Strict Mode
부합Strict Mode의 형식.
로컬 지원
innerRef
폐지 후의 대응 조치.import React from 'react';
import styled from 'styled-components';
const Input = styled.input`
padding: 0.5em;
background: #333;
color: white;
`
export default class Form extends React.Component {
constructor(props) {
super(props);
this.inputRef = React.createRef();
}
render() {
return (
<Input
ref={this.inputRef}
placeholder="Hover to focus!"
onMouseEnter={() => {
this.inputRef.current.focus()
}}
/>
);
}
}
css prop
하나의 구성 요소를 만드는 것이 매우 번거로운 상황에서 다음과 같은 내용을 쓸 수 있다.
babel plugin는 필요한데 실제로는 다음과 같다.
<div
css={`
background: papayawhip;
color: ${props => props.theme.colors.text};
`}
/>
<Button
css="padding: 0.5em 1em;"
/>
const StyledDiv = styled.div`
background: papayawhip;
color: ${props => props.theme.colors.text};
`
const StyledButton = styled(Button)`
padding: 0.5em 1em;
`
<StyledDiv />
<StyledButton />
Theme Consumer
Context API의 Consuumer 어셈블리입니다.
ThemeProvider 주입 상태를 사용하여 Consuumer를 만들 수 있습니다.
import React from 'react';
import styled, { ThemeProvider , ThemeConsumer} from 'styled-components';
const Child = () => <div>
<ThemeConsumer>
{theme => <div>The theme color is {theme.color}.</div>}
</ThemeConsumer>
</div>
export default () => <ThemeProvider theme={{ color: 'black' }}>
<Child/>
</ThemeProvider>
전환 정보
이전 릴리즈를 사용할 때는 codemods를 사용하여 변환할 수 있습니다.
전 세계 설치
npm install -g styled-components-codemods
명령을 내리다styled-components-codemods v4 src/**/*.js
Comp.extend
와 injectGlobal
는 상황에 따라 교체됩니다.
Reference
이 문제에 관하여(Styled Componentsv4 정보), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/7tsuno/items/8fc1f4124b0519b58e63텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)