TIL 20211128[第9974便]
合成ボタンを適用してアクティブ化
[カードを追加](Add Card)画面では、無効になっている場合にのみウィザード文字が表示されます.有効にするとウィザード文字は消え、合成が完了します->設計者の要求に応じて合成ボタンを有効にします
// 제목, 설명, 태그가 모두 작성되야 활성화가 된다는 의미
const activation = title !== '' && desc !== '' && tagsStr !== '';
// activation이 false일 경우 즉, 비활성화일 경우 가이드 문구가 보임
{!activation && (
<div style={{ display: 'flex', marginBottom: '12px' }}>
<div style={{ marginRight: '16px' }}>
<InfoLight />
</div>
<Text regular20 color={ColorStyle.PrimaryPurple}>
다른 사람이 Tap! 할 수 있게 제목, 소개글, 태그를 작성해서 프로젝트를
소개 해보세요
</Text>
</div>
)}
...생략...
<AddBtn
onClick={addCardBack}
activation={activation}
>
<Text
bold20
color={activation ? ColorStyle.PrimaryPurple : ColorStyle.Gray300}
>
작성 완료
</Text>
</AddBtn>
...생략...
const AddBtn = styled.div`
width: 111px;
height: 50px;
border-radius: 30px;
border: 1px solid
// components의 props인 activation을 전달받아서 사용!
${({ activation }) =>
activation ? ColorStyle.PrimaryPurple : ColorStyle.Gray300};
font-size: ${FontScale.Body1_20};
font-family: ${FontFamily};
font-weight: 700;
margin-right: 36px;
margin-bottom: 40px;
background: ${ColorStyle.BackGround300};
p {
cursor: pointer;
text-align: center;
line-height: 50px;
}
&:hover {
background-color: ${({ activation }) =>
activation ? ColorStyle.PrimaryPurple : ColorStyle.BackGround300};
border: 1px solid
${({ activation }) =>
activation ? ColorStyle.PrimaryPurple : ColorStyle.Gray300};
transition: 0.3s;
p {
color: ${({ activation }) =>
activation ? ColorStyle.Gray500 : ColorStyle.Gray300};
}
}
条件付き造形:styled-conntsはコンポーネントの道具を受け入れて使用することができます.テンプレートライブラリでJavaScriptを使用するのと同じ形式で、内部で宣言された関数はpropsをパラメータとして実行されます.上図に示すように、ガイド文字はすべての必要事項を完了すると消え、作成を完了することができる.
ページプロファイルurlの変更
元はpath=「/edit」で、プロファイルを変更するuserIdを追加してurlに入ります.
// App.js
<PrivateRoute
path="/mypage/:userId/edit"
component={CardEdit}
exact
/>
// cardEdit pages
import { useParams } from 'react-router-dom';
const params = useParams();
const userId = params.userId;
userParamsは、思ったよりも簡単に対応するuserId値を加えています.😆上記の図に示すように、プロファイルの変更ページurlには、18というuserId値が中央に表示されます.
useparamsとは?
ルータのAPIに応答して、useparamsはURLパラメータのキー/値ペアオブジェクトを返します.現在の一致.paramsへのアクセスに使用します.
React Routerキーコンポーネント
React Routerには3つの基本カテゴリのコンポーネントがあります.
<BrowserRouter>
および<HashRouter>
などのルータ<Route>
および<Switch>
<Link>
、<NavLink>
および<Redirect>
)import { BrowserRouter, Route, Link } from "react-router-dom";
ルーターとは?
すべてのReact Routerアプリケーションのコアには、ルータコンポーネントが必要です.Webプロジェクトの場合、react-router-domは
<BrowserRouter>
および<HashRouter>
ルータを提供します.両者の主な違いは,URLの格納とWebサーバとの通信方式である.<BrowserRouter>
は、通常のURLパスを使用します.通常は見やすいURLですが、サーバーを正しく構成する必要があります.特に、Webサーバは、クライアントがReact Routerによって管理するすべてのURLに同じページを提供する必要があります.Create Resact Appは、開発段階ですぐにサポートを提供し、本番サーバの構成方法について説明します.<HashRouter>
現在位置をURLのハッシュ部分に格納するので、URLはhttp://example.com/#/your/pageわあ。に類似する.ハッシュはサーバに送信されないため、特別なサーバ構成は必要ありません.ルータを使用するには、要素階層のルートでレンダリングされていることを確認します.通常、ルーターに最上位の要素をパッケージします:
import React from "react";
import ReactDOM from "react-dom";
import { BrowserRouter } from "react-router-dom";
function App() {
return <h1>Hello React Router</h1>;
}
ReactDOM.render(
<BrowserRouter>
<App />
</BrowserRouter>,
document.getElementById("root")
);
P.S.注意:https://v5.reactrouter.com/web/api/Hooks/useparams
https://v5.reactrouter.com/web/guides/primary-components
https://dkje.github.io/2020/10/13/StyledComponents/
今日はstyled-componsesがpropsに渡す条件付き造形を学び、urlにuserId値を加えながら、正式なドキュメントでルータを学びました.😀
Reference
この問題について(TIL 20211128[第9974便]), 我々は、より多くの情報をここで見つけました https://velog.io/@arong/TIL-20211128-항해99-74일차テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol