React/쇼핑몰 프로젝트
[React] 쇼핑몰 프로젝트 (11) - 최근 본 상품 기능 2탄
위르겐
2022. 6. 22. 13:50
로컬 스토리지를 이용한
최근 본 상품 기능 구현
2탄을 시작하겠다.
전 편에서
선수들의 상세페이지에 접속했을 때
로컬스토리지에 선수들의 이름을 저장하는 것 까지 완료했다.
이젠
메인메뉴로 돌아왔을 때
우측에 최근 본 상품 박스를 띄워보자.
<App.js>
import { useEffect, useState } from "react";
역시나 useEffect와 useState는 필수로 import해주고
function App() {
let get_local = JSON.parse(localStorage.getItem("data"));
여기서도 get_local이라는 변수에
기존에 로컬에 저장되어있던
'data'의 키를 가진 값 (즉 선수들의 이름)을
할당해준다.
useEffect(() => {
get_local === null
? localStorage.setItem("data", JSON.stringify([]))
: null;
}, []);
useEffect() 함수 내에서
삼항연산자를 이용해
get_local이 null이라면(비어있다면)
localStorage.setItem으로 빈배열을 넣어주고
get_local이 비어있지 않다면 아무 행동도 안한다는 로직을 짠다.
<div className="cart-box">
<p style={{ marginTop: '10px'}}>최근 본 상품</p>
{get_local !== null
? get_local.map((a, i) => {
return (
<div>
<p className="get-local" style={{ marginTop: "10px" }}>{get_local[i]}</p>
</div>
);
})
: null}
</div>
만약 get_local이 비어있지않다면
map함수를 이용해 get_local각각의 요소를
뿌려준다
다음과 같이 로컬에 배열이 비어있다면
최근 본 상품 박스에
아무 이름도 없다.
하지만
상세페이지에 접속해
선수들의 이름을 로컬에 저장한 후
다시 메인화면으로 돌아올 시
우측 최근 본 상품에 선수들의 이름이 작성된다!
이상 끗!
반응형