[React] 꿈 일기 기록 사이트 제작 일지-13. 검색 기준을 제목, 내용으로 확대, 검색 결과를 화면이 아닌 본문에 추가하기

2023. 9. 28. 13:57·웹 프로젝트/🌜꿈 일기장
반응형

검색 기준을 제목, 내용으로 확대

기존에는 일기 내용만 검색이 가능하도록 구현했는데 제목도 검색 항목에 추가하고 싶었다. 

  const SearchedData = diaryCtx.diary.filter((it) => {
    if (inputText !== "") {
      return it.content.toLowerCase().includes(inputText);
    }
  });

현재 검색어를 포함한 일기를 포함한 로직은 위와 같은데, 여기서 조금만 손을 봐서 일기 제목도 검색 가능하도록 수정해 보려고 한다. 

  const SearchedData = diaryCtx.diary.filter((it) => {
    if (inputText !== "") {
      if (it.content.toLowerCase().includes(inputText)) {
        return it.content.toLowerCase().includes(inputText);
      }
      if (it.title.toLowerCase().includes(inputText)) {
        return it.title.toLowerCase().includes(inputText);
      }
    }
  });

간단하게 filter 함수 내부에 제목을 검색할 수 있는 코드를 추가해주었다. 

만약 content에 inputText와 동일한 글자가 포함되어 있다면 해당 배열을 리턴해준다. 제목에 동일한 글자가 포함되어 있을 때도 마찬가지의 동작을 수행한다.

제목과 본문 내용 중 하나라도 inputText에 해당하는 글자가 있다면 모두 검색하고 싶었기 때문에 하나의 filter 함수에 두 가지 코드를 모두 작성하면 되었다.

 

🚜 결과

 

 

검색 결과를 화면이 아닌 본문에 추가하기

'location.state.inputText'를 출력하던 코드를 header 아래로 내려주기만 하면 되는 간단한 수정이었다.

다만 검색한 내용이 너무 길어지면 화면에 글자를 출력하는 데 공간을 너무 많이 쓰게 되므로 20자까지 끊어서 출력하고 그 뒤는 말줄임표로 대체했다.

추가로 strong 태그를 이용해 검색결과 내용은 따로 강조해서 보여주었다.

      <div className="searchResult">
        <strong>
          {location.state.inputText.length <= 20
            ? `'${location.state.inputText}'`
            : `'${location.state.inputText.slice(0, 20)}...'`}
        </strong>
        {` 검색 결과입니다.`}
        {location.state.SearchedData.map((it) => (
          <DiaryItem key={it.id} {...it} />
        ))}
      </div>

 

🚜 결과

 

 

 


COMMIT

 

:sparkles:검색 기능 향상 · Yoonyesol/Dream_note@403662e

검색 기준을 제목, 내용으로 확대, 검색 결과를 화면이 아닌 본문에 추가하기

github.com

 

반응형
저작자표시 비영리 변경금지 (새창열림)

'웹 프로젝트 > 🌜꿈 일기장' 카테고리의 다른 글

[React] 꿈 일기 기록 사이트 제작 일지-15. Firebase를 이용한 회원가입 기능 구현  (0) 2023.09.29
[React] 꿈 일기 기록 사이트 제작 일지-14. 플로팅 버튼 만들기  (1) 2023.09.28
[React] 꿈 일기 기록 사이트 제작 일지-12. 반응형 웹 CSS 스타일링  (0) 2023.09.27
[React] 꿈 일기 기록 사이트 제작 일지-11. 일기 검색 기능 추가  (0) 2023.09.27
[React] 꿈 일기 기록 사이트 제작 일지-10. 사용자가 장르를 수정할 수 있는 `사용자 장르 추가/삭제 기능` 구현 (+ localStorage)  (2) 2023.09.27
[React] 꿈 일기 기록 사이트 제작 일지-6. 일기아이템 생성 및 조회 페이지 이동 구현과 CSS 스타일링  (0) 2023.09.25
'웹 프로젝트/🌜꿈 일기장' 카테고리의 다른 글
  • [React] 꿈 일기 기록 사이트 제작 일지-15. Firebase를 이용한 회원가입 기능 구현
  • [React] 꿈 일기 기록 사이트 제작 일지-14. 플로팅 버튼 만들기
  • [React] 꿈 일기 기록 사이트 제작 일지-12. 반응형 웹 CSS 스타일링
  • [React] 꿈 일기 기록 사이트 제작 일지-11. 일기 검색 기능 추가
청량리 물냉면
청량리 물냉면
프로그래밍 공부를 하고 있습니다. 공부 내용 정리 겸 정보 공유를 목적으로 합니다.
    반응형
  • 청량리 물냉면
    노력중인 블로그
    청량리 물냉면
  • 전체
    오늘
    어제
    • 분류 전체보기
      • 프로그래밍
        • Programming
        • C | C++
        • Java
        • Python
      • 웹 프로그래밍
        • HTML | CSS
        • JavaScript | TypeScript
        • React
        • Vue.js
        • Next.js
        • Spring & Spring Boot
        • JSP & Servlet
        • DB
      • 웹 프로젝트
        • 웹 프로젝트
        • 🥨스낵몰
        • 👨‍👨‍👧‍👧소셜 가계부
        • 🌜꿈 일기장
        • 🔮포트폴리오 사이트
        • 🏃‍♂️팀 프로젝트: 일정관리 프로그램
        • 📈팀 프로젝트: AI기반 주식 분석 플랫폼
        • 😺Just Meow It: 고양이의 조언
      • 앱 프로그래밍
        • Flutter
        • Kotlin
      • Problem Solving
        • 백준
        • 프로그래머스
        • SWEA
      • Computer Science
        • 알고리즘
        • 컴퓨터 네트워크
        • 이산수학
      • Developer
        • 후기
        • 자료정리
        • 취업 | 취준
        • 웹개발 교육 프로그램
        • TIL
  • 블로그 메뉴

    • 홈
    • Github
  • 공지사항

    • 프로그래밍 공부 중😊
  • 인기 글

  • 태그

    SWEA
    자바스크립트
    클론 프로젝트
    Til
    ZeroCho
    구현
    백준
    프로젝트
    뉴렉처
    spring boot
    리액트
    웹사이트
    React
    프로그래머스
    파이썬
    d3
    Jiraynor Programming
    타입스크립트
    블로그 제작
    Next.js
    공식문서
    bfs
    플러터
    강의내용정리
    AWS
    mysql
    포트폴리오
    컴퓨터네트워크
    알고리즘
    자바
  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
청량리 물냉면
[React] 꿈 일기 기록 사이트 제작 일지-13. 검색 기준을 제목, 내용으로 확대, 검색 결과를 화면이 아닌 본문에 추가하기
상단으로

티스토리툴바