[復習]React State,propsチャレンジ
復習する前に。
反応の基礎を始めてからもう3日になりました.今日はReactの基礎文法を学び,Routerを用いてSPAを実現し,StateとPropsのイベント処理関数を用いてSNSの基本動作を実現する.今回のブログでは、今日行われた課題に含まれる文法、概念を振り返り始めました.
npmのインストール
コードstaitsではgit hubを用いてジョブをコミットする方法があるが,node package manager npmを用いてコードの正解確認とコミットを行う方法もある.本課題はnpmで行われるので、課題を行う前にnpm install
を入力端末にnpmインストールを指令する.
react-router-domのインストール
以前にspa部分の予習でまとめた内容に含まれていたrouter関連のコンポーネントを使用するために,課題開始前に端末にnpm i react-router-dom
コマンドを入力してインストールする.
課題目標
下図の左側の部分では、routerを使用して3つのアイコンにspaを実装し、上部にユーザー名とtweetコンテンツを作成し、「tweet」ボタンを押して、作成したユーザー名とtweetコンテンツを次のtweetリストに追加する方法を実装します.
アイコンの追加
https://fontawesome.com/icons
ページに登録して、本当にいろいろなアイコンを無料で提供します.インポートできるコードタイプはHTML、React、Vueです.jsで提供します.
利用する
複数人がアップロードした情報のリストをリストする場合、重複する情報を同じフォーマットでアップロードするので、propsを使用するのが有効な方法であると理解しています.
{tweetUpdate.map(tweet => <Tweet tweet={tweet} /> )}
Tweet
はpropsを伝達するサブコンポーネントであり、その後のtweet={tweet}
はサブコンポーネントに伝達するpropsである.また、propsがサブコンポーネントにオブジェクトとして渡されることを覚えておいてください.const Tweet = ({ tweet }) => {컴포넌트 내용}
第{tweet}
として、サブ要素端から受信された親要素からのpropsが確認される.このパラメータ値はオブジェクトとして存在します.<div className="tweet__message">
{tweet.content}
</div>
tweet
は、上記のコードのように、{}
のカッコおよびオブジェクト呼び出しフォーマットを使用して、必要なオブジェクトの値をロードすることができる.const obj = {key : 'value',}
たとえば、上のobjオブジェクトが上のtweetパラメータ値に渡されたと思う場合は、divというtextcontent値に「value」という文字列を次の方法でロードできます. <div>{obj.key}</div>
stateプロパティとイベントハンドラ関数の使用
useState
要素をimportにロードする必要があります.import { useState } from "react";
useState
の値は、username
がsetIsUsername
関数によって変化した値であり、useState
のパラメータ値であるhskim
がusername
の初期値である変数に入れて使用される.const Tweets = () => {
const [username, setIsUsername] = useState('hskim');
button
のラベルにこのボタンをクリックして生成されたonClick
イベント属性が含まれており、クリックイベントが発生したときにButtonClick
関数が呼び出される.<button onClick={ButtonClick}>Tweet</button>
ButtonClick
関数はどのようなものですか.ButtonClick
関数が呼び出されると、setIsUsername
という現在の値を変更する関数が呼び出され、現在の値はパラメータ値state
の値に置き換えられます.たとえば、チェックボックスマークのパラメータ値がevent.target.any
の場合、現在の値はevent.target.checked
またはtrue
のブール値に変更されます.const ButtonClick = (event) => {
setIsUsername(event.target.any);
};
Reference
この問題について([復習]React State,propsチャレンジ), 我々は、より多くの情報をここで見つけました https://velog.io/@dream6414/복습-React-State-props-활용한-과제テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol