[ANOTHER CLASS 101]-2番目の項目(4 DAY)
#クリエイターセンター
作成が完了すると、「作成センターHeader/ASide/Footterレイアウト」フォームが発行されます.
#実装機能
styled-componentは知れば知るほど不思議に思う.
#usStateを使用してページをクリックして移動し、重複するボタンを再使用します。
[ Header.js ]<button className="btn">나가기</button>
右上隅の終了ボタンをクリックすると、ポップアップ画面が下の画像のように表示され、ポップアップ画面内部の各ボタンをクリックして「終了」をクリックしてホームページに入り、「書き続ける」と「X」をクリックすると、UIユーザーはクリック前に見た画面を保持します.
クラスコンポーネントを使用すると、コードが不要に長くなるように感じるので、ページ移動が簡単な場合はコードは基本的に4-5行少なくなりますが、関数形式であれば、コードは短い2行の長さに十分に反映され、慣れていない初心者開発者の視線でも十分に理解できます.
[ Header.js ]//클릭 모션 받아올 준비
const Header = ({ handleExit })={
...
<button onClick={handleExit} className="btn">나가기</button>
...
}
[ index.js ]const Index = (props) => {
const [isExit, setIsExit] = useState(false);
const history = useHistory();
const handleExit = () => {
setIsExit(prev => !prev);
};
const handleCurrentPage = page => {
setCurrentPage(page);
};
const handleTogoMain = () => {
history.push('/');
};
...
return (
<Header handleExit={handleExit} />
{isExit && (
<ExitBox>
<PopupBox>
<ExitClick>
<AiOutlineClose size={24} onClick={handleExit} />
</ExitClick>
<BoxTitile>
<p>{id}</p>님 <span>정말 나가실 거예요?</span>
</BoxTitile>
<BoxText>
오늘, 마음먹은 김에 바로 페이지 작성을 완료하고 {id}님을
기다리고 있는 수강생들을 만나세요! 조금만 더 힘내봐요 우리 🙆♀️
</BoxText>
<Buttons>
<ExitButton onClick={handleTogoMain}>나갈래요</ExitButton>
<ExitButton on Click={handleExit} primary>
계속 작성할래요
</ExitButton>
</Buttons>
</PopupBox>
</ExitBox>
)}
...
);
}
上記の[index.js]のようなコードを使用すると、不要なclassNameを使用しなくなるという利点があります.
styled-componentを使用して可読性を向上させ、対応するスタイルを下部からconstを減算してスタイル要素を作成します.
useStateによって1行を非構造割り当てとして処理し、パラメータと変更値をそれぞれ使用したいSTAIL素子に割り当てて関数を宣言し、関数に簡単に内容を書き、効率的な結果を生成します.
#styled-connt活用!
styled-componentは脱ぐほど不思議な感じがします.
-使用したい方法:外部構成部品(Footer.js)の内部に天命構成部品(ボタン)のスタイルを作成し、作成中の構成部品(Index.js)にインポートし、天命構成部品を再使用し、スタイルの一部のみを変更します.
[ Footer.js ]
出口
<button className="btn">나가기</button>
//클릭 모션 받아올 준비
const Header = ({ handleExit })={
...
<button onClick={handleExit} className="btn">나가기</button>
...
}
const Index = (props) => {
const [isExit, setIsExit] = useState(false);
const history = useHistory();
const handleExit = () => {
setIsExit(prev => !prev);
};
const handleCurrentPage = page => {
setCurrentPage(page);
};
const handleTogoMain = () => {
history.push('/');
};
...
return (
<Header handleExit={handleExit} />
{isExit && (
<ExitBox>
<PopupBox>
<ExitClick>
<AiOutlineClose size={24} onClick={handleExit} />
</ExitClick>
<BoxTitile>
<p>{id}</p>님 <span>정말 나가실 거예요?</span>
</BoxTitile>
<BoxText>
오늘, 마음먹은 김에 바로 페이지 작성을 완료하고 {id}님을
기다리고 있는 수강생들을 만나세요! 조금만 더 힘내봐요 우리 🙆♀️
</BoxText>
<Buttons>
<ExitButton onClick={handleTogoMain}>나갈래요</ExitButton>
<ExitButton on Click={handleExit} primary>
계속 작성할래요
</ExitButton>
</Buttons>
</PopupBox>
</ExitBox>
)}
...
);
}
import Footer, { Button } from './Components/Footer';
import styled, { css } from 'styled-components';
使用するエレメントの上部にimportをドラッグ&ドロップし、使用する部分にインポートされた天命の天命エレメントを包みます.
その後、ExitButton構成部品に変更または追加するスタイルを作成して終了します.2つの
<ExitButton onClick={handleTogoMain}>나갈래요</ExitButton>
<ExitButton onClick={handleExit} primary>계속 작성할래요</ExitButton>
ExitButtonにprimaryを追加し、<ExitButton>
個のカーネルコンポーネントにprimaryを渡します.サスペンションまで、別々に造形できます. ${props =>
props.primary &&
css`
width: 45%;
background: ${theme.orange};
color: white;
&:hover {
background-color: ${theme.deepOrange};
}
`}
Reference
この問題について([ANOTHER CLASS 101]-2番目の項目(4 DAY)), 我々は、より多くの情報をここで見つけました https://velog.io/@ss3152psy/ANOTHER-CLASS-101-2차-프로젝트-4DAYテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol