[인스타그램 클론코딩] 07. 팔로우 기능 구현(Front-End)

2023. 2. 2. 17:40·Web/인스타 클론 코딩
목차
  1. 1.  FollowContainer.js 작성

기존 인스타에서 팔로우 추천목록은 핸드폰번호나 다양한 정보들을 이용하여 띄워주는 것 같지만, 그렇게 깊게 구현할 수 없어 그냥 모든 유저목록에 대하여 팔로우 기능을 수행할 수 있도록 하였다.

팔로우 기능은 다음과 같다.

1. 본인을 제외한 모든 유저 목록 출력

2. 각 유저마다 팔로우/언팔로우 기능 구현

구현 화면

 

1.  FollowContainer.js 작성

const FollowContainer = () => {

    const [userList, setUserList] = useState([]);
    const getUserList = () => {
        withJwtAxios.get('/user-list')
            .then((res) => {
                setUserList(res.data.userList);
            })
    }

    const onClickFollow = (follwingEmail) => {
        withJwtAxios.get('/follow', {params: {followingEmail: follwingEmail}})
            .then((res) => {
                setUserList(res.data.userList);
            });
    }

    const onClickUnFollow = (followingEmail) => {
        withJwtAxios.delete('/follow', {params: {followingEmail: followingEmail}})
            .then((res) => {
                setUserList(res.data.userList);
            });
    }

    useEffect(() => {
        getUserList();
    }, [])

    return (
        <div className={style.follow_container}>
            {userList.map((user, idx) => {
                return(
                    <div key={idx} className={style.user_container}>
                        <div className={style.profile}>
                            <img className={style.thumbnail} src={Static_Base_Url + user.profileUrl}/>
                            <div className={style.text}>{user.nickname}</div>
                        </div>
                        {user.follow !== true?
                            <div className={style.follow} onClick={() => onClickFollow(user.email)}>팔로우</div> :
                            <div className={style.unfollow} onClick={() => onClickUnFollow(user.email)}>언팔로우</div>
                        }
                    </div>
                )
            })}
        </div>
    );
};

 

- getUserList 함수로 서버에서 유저 목록을 받아와 map 함수를 통하여 반복 랜더링 해주었다.

- 만약 본인이 해당 유저를 팔로우하고 있을 경우 unfollow div를, 그렇지 않을 경우 follow div를 출력하도록 설정하였다.

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

'Web > 인스타 클론 코딩' 카테고리의 다른 글

[인스타그램 클론코딩] 08. 홈 화면 구현(Back-End)  (0) 2023.02.03
[인스타그램 클론코딩] 07. 팔로우 기능 구현(Back-End)  (0) 2023.02.02
[인스타그램 클론코딩] 06. 게시글 Posting 구현(Back-End)  (0) 2023.02.02
[인스타그램 클론코딩] 06. 게시글 Posting 구현(Front-End)  (0) 2023.02.02
[인스타그램 클론코딩] 05. 기본 화면 구성(Front-End)  (0) 2023.02.02
  1. 1.  FollowContainer.js 작성
'Web/인스타 클론 코딩' 카테고리의 다른 글
  • [인스타그램 클론코딩] 08. 홈 화면 구현(Back-End)
  • [인스타그램 클론코딩] 07. 팔로우 기능 구현(Back-End)
  • [인스타그램 클론코딩] 06. 게시글 Posting 구현(Back-End)
  • [인스타그램 클론코딩] 06. 게시글 Posting 구현(Front-End)
뚝딱뚝딱2
뚝딱뚝딱2
  • 뚝딱뚝딱2
    개발도상국
    뚝딱뚝딱2
  • 전체
    오늘
    어제
    • 분류 전체보기
      • 공부
        • Java
        • Spring Boot
        • LORA
      • Web
        • 인스타 클론 코딩
        • GPT 응답 API 서버
        • Spring Boot 예외 처리
        • 코테 준비용 서비스 만들기
      • DevOps
        • 쿠버네티스
        • 서버 만들기
      • 코딩테스트
        • 알고리즘
      • 교육
        • 스파르타코딩클럽 - 내일배움단
        • 혼자 공부하는 컴퓨터 구조 운영체제
      • 잡다한것
  • 블로그 메뉴

    • 홈
  • 링크

    • GITHUB
  • 공지사항

  • 인기 글

  • 태그

    OpenAI API
    Entity
    리액트
    MSA
    클러스터
    스프링 부트
    쿠버네티스
    Java
    예외
    티스토리챌린지
    REST API
    오블완
    클론코딩
    인스타그램
    spring boot
    chat GPT
    백준
    mapstruct
    react
    스프링부트
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
뚝딱뚝딱2
[인스타그램 클론코딩] 07. 팔로우 기능 구현(Front-End)
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.