๐ŸŸฉ Frontend-HTML & CSS & +JS/๐Ÿ”ฐ React

contextํŒŒ์ผ์˜ ๋ฐ์ดํ„ฐ ๊ฐ€์ ธ์™€์„œ ์—ฌ๋Ÿฌ div ๋ชฉ๋ก๋งŒ๋“ค์–ด ์“ฐ๊ธฐ (UseContext / map/slice)

ramen2 2025. 1. 6. 19:47
๋ฐ˜์‘ํ˜•

๋งŒ์•ฝ ๋‚ด๊ฐ€

(AllContext.jsx) ํŒŒ์ผ์— ์žˆ๋Š”

๊ณต์ง€์‚ฌํ•ญ ์˜ ์ œ๋ชฉ, ์—ฐ๋„๋ฅผ ๊ฐ€์ ธ์˜ค๊ณ  ์‹ถ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™์€ ์ฝ”๋“œ์ด๋‹ค

 

 

| Main.jsx

import React, { useContext, useState } from "react"; //useContext ๋ฅผ ๊ฐ€์ ธ์˜ค๊ธฐ์œ„ํ•œ ์ฝ”๋“œ
import { Link } from 'react-router-dom'; //์ด๊ฑด ๋งํฌ๋ฅผ ๋‹ฌ๊ธฐ์œ„ํ•œ์ฝ”๋“œ (a href๊ฐ™์€ ์ฝ”๋“œ)
import AllContext from './AllContext'; // context๊ฐ€ ์žˆ๋Š” ํŒŒ์ผ์„ ๊ฐ€์ ธ์˜ค๋Š” ์ฝ”๋“œ


function Main() {
    return(
        <div>
       <p className={styles.num_text}>
          ์ด <span>{noticeData.length}</span>๊ฑด
          // ๋ช‡ ๊ฑด์ธ์ง€ contextํŒŒ์ผ์•ˆ์˜ ๊ฐฏ์ˆ˜๋กœ .length๋ฅผ ์‚ฌ์šฉํ•ด ํ‘œ๊ธฐ
        </p>
             {noticeData.map((item) => (
                <Link to='/NoticeInner'>
                <div key={item.id} className={styles.text_index}>
                    <p className={styles.text_le}>{item.title}</p>
                        <p className={styles.text_ri}>{item.date}</p>
                </div></Link>
                ))}
                    
            
        </div>
    )
};

export default Main;

 

 

| AllContext .jsx

import React, { createContext, useState} from "react";


// ๊ณต์ง€์‚ฌํ•ญ ์ •๋ณด
const NoticeData = [
    {
        id: 1,
        title: '๊ฐ€๊ณก๊ณผ ์•„๋ฆฌ์•„์˜ ๋ฐค ๋ถ€์‚ฐ์˜ˆ์ˆ ํšŒ๊ด€ ๊ณต์—ฐ์žฅ ์ž…์žฅ๊ณต์ง€',
        date: '24๋…„ 7์›” 10์ผ',
    },
    {
        id: 2,
        title: 'BMPO์™€ ํ•จ๊ป˜ํ•˜๋Š” ์ถ”์–ต์˜ ์˜ํ™”์Œ์•… ๋ถ€์‚ฐ๋ฌธํ™”ํšŒ๊ด€ ์ค‘๊ทน์žฅ ์ž…์žฅ๊ณต์ง€',
        date: '24๋…„ 6์›” 10์ผ',
    },
    {
        id: 3,
        title: '์ œ18ํšŒ ๋ถ€์‚ฐ๊ตญ์ œ ์–ด๋ฆฐ์ด์ฒญ์†Œ๋…„ ์˜ํ™”์ œ ์• ๋‹ˆ๋ฉ”์ด์…˜ ์Œ์•…ํšŒ ์˜ํ™”์˜ ์ „๋‹น ํ•˜๋Š˜์—ฐ๊ทน์žฅ ์ž…์žฅ๊ณต์ง€',
        date: '24๋…„ 5์›” 10์ผ',
    },
   
  
]


const AllContext  = createContext();


const AllContext  = createContext();

export const AllContextProvider = ({children}) => {
// ๊ณต์ง€์‚ฌํ•ญ ๋ฐ์ดํ„ฐ ์ €์žฅ
const [noticeData, setNoticeData] = useState(NoticeData); // noticeData ์ƒํƒœ ์ถ”๊ฐ€
const [noticeDataSlice, setnoticeDataSlice] = useState(noticeData.slice(0, 2));  //2๊ฐœ๋งŒ ์ž˜๋ผ์„œ ์ €์žฅ๋„ ๊ฐ€๋Šฅ
  return (
    <AllContextProvider.Provider value={{noticeData, noticeDataSlice}}>
      {children}
    </AllContextProvider.Provider>
  )
      
};

export default AllContextProvider;

 

 

 

์ œ๋ชฉ, ๋“ฑ๋ก์ผ์€ html

๋ฐ˜์‘ํ˜•