[React]スタイル-コンポーネント-深化
9470 ワード
これまでのリリースに続いてstyled-componses公式ドキュメントのAPIページ上のコンテンツの理解内容が優先的に整理された.
1-1. 構成部品タイプを変更できますか?
1-2. propsをレンダリングしてもらえますか?
2-1. グローバルスタイルを適用できますか?
2-2. JavaScriptからcssを直接書くことはできませんか?
2-3. アニメーションキーを生成できますか?
1.さまざまな機能のアイテム
1)構成部品タイプの変更-as
(
2)仮支柱
propsがreactノードに渡されたりDOM要素にレンダリングされたりしないようにするには、props名の前に
単純なスタイルを付けるだけで、構成部品を作成する必要がない場合はcssplsを使用できます.
1) createGlobalStyle
グローバルスタイルを処理するアシスタント関数
デフォルトでは、styled構成部品はローカルcssクラスとして指定され、他の構成部品から分離されます.createGlobalStyleの場合、この制限は削除され、css resetまたはdefault styleを適用するために使用できます.
2) css
JavaScriptコードにcssの関数を入力するのに役立ちます
アニメーションキーの作成を支援する関数
1-1. 構成部品タイプを変更できますか?
1-2. propsをレンダリングしてもらえますか?
2-1. グローバルスタイルを適用できますか?
2-2. JavaScriptからcssを直接書くことはできませんか?
2-3. アニメーションキーを生成できますか?
1.さまざまな機能のアイテム
1)構成部品タイプの変更-as
as
propsを使用して、構成部品のタイプを変更できます.(
withComponent
と同様、with Componentはサポートを停止します)const Button = styled.button`
padding: 2px 5px;
color: ${props => props.theme.color};
border-radius: 3px;
`
<Button as="a">Click Me</Button>
Button
要素はbutton
要素として定義されるが、as
propsのためa
タグとしてレンダリングされる.2)仮支柱
propsがreactノードに渡されたりDOM要素にレンダリングされたりしないようにするには、props名の前に
$
を付けると一時的なpropsになります.const Comp = styled.div`
color: ${props =>
props.$draggable || 'black'};
`;
render(
<Comp $draggable="red" draggable="true">
Drag me!
</Comp>
);
3)構成部品を作成せずにスタイルを指定する単純なスタイルを付けるだけで、構成部品を作成する必要がない場合はcssplsを使用できます.
<div
css={`
background: papayawhip;
color: ${props => props.theme.colors.text};
`}
/>
<Button
css="padding: 0.5em 1em;"
/>
2. Helpers1) createGlobalStyle
グローバルスタイルを処理するアシスタント関数
デフォルトでは、styled構成部品はローカルcssクラスとして指定され、他の構成部品から分離されます.createGlobalStyleの場合、この制限は削除され、css resetまたはdefault styleを適用するために使用できます.
import { createGlobalStyle } from 'styled-components'
const GlobalStyle = createGlobalStyle`
body {
color: ${props => (props.whiteColor ? 'white' : 'black')};
}
`
function App() {
return (
<>
<GlobalStyle/>
<Home>
</>
);
}
あるいは、ThemeProvider
を使用して構成部品を親構成部品に包む場合、global styleは、サブ構成部品全体に適用され得る.2) css
JavaScriptコードにcssの関数を入力するのに役立ちます
const complexMixin = css`
color: ${props => (props.whiteColor ? 'white' : 'black')};
`
3) keyframeアニメーションキーの作成を支援する関数
import styled, { keyframes } from 'styled-components'
const fadeIn = keyframes`
0% {
opacity: 0;
}
100% {
opacity: 1;
}
`
const FadeInButton = styled.button`
animation: 1s ${fadeIn} ease-out;
`
Reference
この問題について([React]スタイル-コンポーネント-深化), 我々は、より多くの情報をここで見つけました https://velog.io/@yeyo0x0/React-Styled-Components-심화テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol