<LogoutButton
onClick={() => {
setUserInfo(null);
setIsLogin(false);
}}
>
LOGOUT
</LogoutButton>
onClick 이벤트 핸들러에 전달되는 함수는 클릭이 발생했을 때 실행될 함수를 정의합니다. 함수를 실행시키기 위해서는 괄호 ()를 사용해야 합니다. 그래서 () => { / some code / }는 익명 함수를 나타내며, 클릭이 발생하면 해당 익명 함수가 실행됩니다.
따라서 위의 코드에서 () => { setUserInfo(null); setIsLogin(false); }은 'LOGOUT' 버튼이 클릭되었을 때 실행되는 함수를 정의하고 있습니다. 함수 내부에서는 setUserInfo(null)과 setIsLogin(false)가 호출되어 상태를 업데이트합니다. 이런 방식으로 함수를 클릭 이벤트 핸들러에 전달하는 것이 일반적인 React 코드 스타일입니다.
const Search = ({ setKeyword, initialData, isLoading }) => {
const [searchInput, setSearchInput] = useState('');
return (
<SearchBar>
<SearchInput
placeholder="해싱 값을 입력하세요"
value={searchInput}
onChange={(e) => setSearchInput(e.target.value)}
/>
{initialData ? (
<SearchButton onClick={() => setKeyword(searchInput)}>
<i className="fa-solid fa-magnifying-glass"></i>
</SearchButton>
) : (
<SearchButton
onClick={() => {
setKeyword('');
setSearchInput('');
}}
blink
>
<i className="fa-solid fa-rotate-right"></i>
</SearchButton>
)}
</SearchBar>
);
};
(' ')은 문자열 리터럴입니다. 문자열 리터럴은 문자들을 특정한 순서로 배열한 것이며, 따옴표로 묶어서 나타냅니다. 예를 들어, 'Hello, World!'와 같이 따옴표로 묶인 부분이 문자열 리터럴입니다.
그러나 여기서 주어진 코드에서 (' ')는 빈 문자열을 나타냅니다. 즉, 길이가 0인 빈 문자열입니다. React에서 상태를 다룰 때, 특정 상태 값이 초기에 어떤 값으로 설정되어야 할지 정의하기 위해 사용될 수 있습니다.
예를 들어, useState('initialValue')와 같이 useState 훅을 사용할 때 초기값으로 'initialValue'를 설정할 수 있습니다. 이 코드에서는 setKeyword라는 상태를 업데이트하기 위해 사용되는 함수에 (' ')를 전달하여 초기값으로 빈 문자열을 설정하는 것으로 보입니다.
e.target.value는 이벤트 객체(e 또는 다른 이름으로 사용 가능)에서 발생한 이벤트에 대한 정보를 제공하는 속성입니다. 이 코드에서는 onChange 이벤트가 발생했을 때, 해당 이벤트 객체의 target 속성을 통해 입력 요소(input 또는 다른 입력 요소)에 접근하고, 그 요소의 value 속성을 읽어옵니다.
구체적으로 말하면:
e는 이벤트 객체를 나타냅니다.
e.target은 이벤트가 발생한 HTML 요소를 나타냅니다.
e.target.value는 해당 요소의 현재 값(사용자가 입력한 텍스트)을 나타냅니다.
즉, onChange 이벤트가 발생할 때, 사용자가 입력한 텍스트를 읽어오기 위해 e.target.value를 사용합니다. 이 값은 보통 입력 요소(예: input, textarea)에 사용되며, 사용자가 입력한 내용을 동적으로 처리할 때 유용합니다.
"컴포넌트에 프롭스를 내린다(Props를 내린다)"는 React에서 부모 컴포넌트로부터 자식 컴포넌트로 데이터나 함수를 전달하는 행위를 의미합니다. React에서는 부모 컴포넌트에서 자식 컴포넌트로 정보를 전달할 때 Props(속성)를 사용합니다.
Props를 통해 컴포넌트 간에 데이터를 전달하면, 부모 컴포넌트에서 자식 컴포넌트로 데이터를 내려주는 것이라고 말할 수 있습니다. 이렇게 전달된 Props는 자식 컴포넌트에서 사용되거나 해당 컴포넌트의 동작을 제어하는 데 활용됩니다.
예를 들어, 부모 컴포넌트에서 자식 컴포넌트로 문자열 데이터를 전달하는 경우:
// 부모 컴포넌트
function ParentComponent() {
const message = "Hello from Parent!";
return <ChildComponent message={message} />;
}
// 자식 컴포넌트
function ChildComponent(props) {
return <p>{props.message}</p>;
}
위의 예제에서 ParentComponent에서 message라는 문자열을 ChildComponent로 Props로 전달했습니다. ChildComponent에서는 props.message를 통해 이 데이터에 접근하여 화면에 출력할 수 있습니다.
이처럼 Props를 내려주는 것은 React 애플리케이션에서 컴포넌트 간에 데이터를 효과적으로 공유하고 상호 작용하는 중요한 개념 중 하나입니다.
브라우저는 현존하는 브라우저끼리 조금씩 그 특징이 다르지만 공통점이 하나 있습니다. 그것은 바로 동작 방식입니다. 브라우저는 사용자가 선택한 자원(Resource)를 서버에 요청(Request)하고, 서버의 응답(Response)을 브라우저에 띄우는(Rendering) 방식으로 동작합니다. 여기서 자원은 대개 HTML 문서이나 가끔 PDF, 멀티미디어 등 다른 형태일 수 있으며, 자원의 주소는 URI(Uniform Resource Identifier)로 되어 있습니다.
const [count, setCount] = useState(0);
설명해줘.
이 코드는 React 함수형 컴포넌트에서 상태(state)를 다루기 위해 사용되는 useState 훅을 활용한 예시입니다.
const [count, setCount] = useState(0);
useState(0): useState는 React에서 상태를 관리하기 위한 훅으로, 함수의 인자로 초기 상태 값을 받습니다. 여기서는 초기 값으로 0을 전달했으므로 count라는 상태 변수의 초기 값은 0이 됩니다.
const [count, setCount]: useState의 반환 값은 배열이며, 배열의 첫 번째 요소는 상태 변수(count), 두 번째 요소는 상태를 갱신할 수 있는 함수(setCount)입니다.
count: 현재의 상태 값을 나타냅니다. 초기에는 0으로 설정됩니다.
setCount: 상태를 갱신할 수 있는 함수로, 새로운 값을 전달하여 상태를 업데이트할 수 있습니다.
이렇게 선언된 count 상태 변수는 컴포넌트가 렌더링될 때마다 유지되며, setCount 함수를 사용하여 값을 업데이트할 수 있습니다. 상태가 변경될 때마다 React는 컴포넌트를 리렌더링하게 되어 화면에 반영됩니다.
펜딩 -> 대기중인 상태