React에서 검색 창을 만드는 방법
21668 단어 beginnersjavascriptreacttutorial
검색창이란 무엇입니까?
웹 사이트 검색 표시줄은 사용자가 콘텐츠를 검색할 수 있는 표시줄입니다. 사용자는 검색 표시줄을 클릭하고 쿼리를 입력한 다음 돋보기 아이콘인 "검색"을 클릭합니다.
예를 들어 블로그 게시물을 검색하는 막대는 다음과 같습니다.
React에서 검색창을 만들어 봅시다
https://react-searchbar.vercel.app/에서 데모를 볼 수 있습니다.
GitHubhttps://github.com/nicvazquez/react-searchbar에서 코드를 볼 수 있습니다.
1) React 앱 만들기
다음 명령을 사용하여 Vite로 React 앱을 만들어 보겠습니다.
npm create vite@latest
그런 다음 몇 가지 옵션을 완료하라는 메시지가 표시됩니다.
√ Project name: ... react-searchbar
√ Select a framework: » react
√ Select a variant: » react
훌륭한! 이제 다음 명령을 실행합니다.
cd react-modal
npm install
npm run dev
모든 것이 잘 되었다면 종속성이 설치된 애플리케이션을 생성하고 프로젝트를 로컬 서버에서 실행해야 합니다. 제 경우에는 http://127.0.0.1:5173/ 입니다.
2) 가져오기 API
검색 표시줄을 탐색할 때 사용할 수 있도록 Rest API에서 데이터를 가져올 것입니다.
이것은 게시물의 요점이 아니므로 API에서 데이터를 가져오는 방법에 대해 자세히 설명하지 않겠습니다.
이 코드를
App.jsx
에 넣으십시오. 이러한 방식으로 작업할 수 있는 데이터와 함께 응용 프로그램의 기반을 갖게 됩니다.import { useEffect, useState } from "react";
import "./App.css";
function App() {
const [users, setUsers] = useState([]);
useEffect(() => {
void fetch("https://jsonplaceholder.typicode.com/users")
.then((response) => response.json())
.then((data) => setUsers(data));
}, []);
return (
<div>
<ul>
{users.map((user) => (
<li key={user.id}>{user.name}</li>
))}
</ul>
}
</div>
);
}
export default App;
앱은 다음과 같아야 합니다.
3) 검색창 만들기
이제 중요한 내용으로 넘어가겠습니다. SearchBar 구성 요소를 만들어 보겠습니다.
src
에서 components
라는 폴더를 만들고 그 안에 searchbar
라는 또 다른 폴더를 만듭니다. searchbar
폴더 안에 SearchBar.jsx
및 searchbar.module.css
2개의 파일을 만듭니다. 프로젝트 구조는 다음과 같아야 합니다.
좋습니다. 이제
SearchBar.jsx
구성 요소에서 첫 번째 단계를 수행하겠습니다.먼저 기반을 갖기 위해 입력을 생성합니다.
import React from "react";
export const SearchBar = () => {
return <input placeholder="Search for an user" type="search" />;
};
변경 사항을 확인하기 위해 내부에서 SearchBar 구성 요소를 가져오겠습니다
App.jsx
.import { SearchBar } from "./components/searchbar/SearchBar";
우리
App.jsx
의 반환은 다음과 같아야 합니다.return (
<div>
<SearchBar />
<ul>
{users.map((user) => (
<li key={user.id}>{user.name}</li>
))}
</ul>
</div>
);
우리는 이미 구조를 가지고 있지만 여전히 좋아 보이지 않습니다. 약간의 패딩을 주자
SearchBar.jsx
파일에서...import React from "react";
import styles from "./searchbar.module.css";
export const SearchBar = () => {
return (
<input
className={styles.searchbar}
placeholder="Search for an user"
type="search"
/>
);
};
searchbar.module.css
에 다음 코드를 추가해 보겠습니다..searchbar {
padding: 0.5rem;
}
지금까지 애플리케이션은 다음과 같아야 합니다.
4) 검색창에 기능 추가
우리의
App.jsx
로 돌아가 봅시다.검색이 작동하려면 화면에 데이터를 표시할 때 필터를 추가해야 합니다.
const [search, setSearch] = useState("")
filter()
JavaScript 메서드를 추가해야 합니다.const results = users.filter((user) =>
user.name.toLocaleLowerCase().includes(search.toLocaleLowerCase())
);
{
<ul>
{results.length === 0 ? (
<p>There are no users to display</p>
) : (
results.map((user) => <li key={user.id}>{user.name}</li>)
)}
</ul>
}
SearchBar.jsx
에서 소품을 통해 onChange 이벤트를 전달해야 합니다. 이것은 나중에 사용자가 입력한 내용을 저장하는 역할을 합니다.export const SearchBar = ({onChange}) => {
return (
<input
className={styles.searchbar}
placeholder="Search for an user"
type="search"
onChange={onChange}
/>
);
};
App.jsx
에서 search
상태의 입력 값을 저장하는 익명 함수를 props를 통해 보냅니다.<SearchBar onChange={(e) => setSearch(e.target.value)} />
이제 검색창에 입력하면
search
에 저장된 항목을 기반으로 필터링하므로 필터링이 올바르게 작동합니다.App.jsx
는 다음과 같아야 합니다.import { useEffect, useState } from "react";
import "./App.css";
import { SearchBar } from "./components/searchbar/SearchBar";
function App() {
const [users, setUsers] = useState([]);
const [search, setSearch] = useState("");
useEffect(() => {
void fetch("https://jsonplaceholder.typicode.com/users")
.then((response) => response.json())
.then((data) => setUsers(data));
}, []);
const results = users.filter((user) =>
user.name.toLocaleLowerCase().includes(search.toLocaleLowerCase())
);
return (
<div>
<SearchBar onChange={(e) => setSearch(e.target.value)} />
{
<ul>
{results.length === 0 ? (
<p>There are no users to display</p>
) : (
results.map((user) => <li key={user.id}>{user.name}</li>)
)}
</ul>
}
</div>
);
}
export default App;
완료
그거였다! 질문이나 제안 사항이 있으면 댓글에 남겨주세요.
https://react-searchbar.vercel.app/에서 데모를 볼 수 있습니다.
GitHubhttps://github.com/nicvazquez/react-searchbar에서 코드를 볼 수 있습니다.
여기까지 와주셔서 감사합니다 :)
Reference
이 문제에 관하여(React에서 검색 창을 만드는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/nicvazquez/how-to-create-a-search-bar-in-react-5h0g텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)