그럴듯한 개발 블로그
nextjs용 daisyUI 다크모드 토글버튼
<frontend>/daisyUI 2024. 5. 2. 15:44

다크모드 토글버튼을 직접 만들으라네;공식문서 보고 만들었다.https://daisyui.com/docs/themes/ daisyUI themes — Tailwind CSS Components ( version 4 update is here )How to use daisyUI themes?daisyui.comhttps://daisyui.com/components/theme-controller/ Tailwind Theme Controller Component — Tailwind CSS Components ( version 4 update is here )Tailwind Theme Controller examples: If a checked checkbox input or a checked radio inpu..

useReducer 구현

완성본 코드https://github.com/donghyun1998/vanilla_js_SPA_starter_kit/blob/main/src/utils/useReducer.js useState로도 상태관리 가능하지만, 더 짧고 가독성 좋게 관리할 수 있는 리액트 훅인 useReducer에 대해 알게 되어 비슷하게 구현해봤다.이전에 구현했던 useState와 비슷하게 클로저로 구현했다.중복되는 개념이 많으니 먼저 보고 오길 바란다. 복잡한 state가 필요한 상황에서 useReducer를 사용하면 reducer함수 내부의 switch문으로 state변경을 가독성 좋게 할 수 있다.function deepCopy(obj) {  if (Array.isArray(obj)) {    return obj.map((..

useEffect 구현

완성본 코드https://github.com/donghyun1998/vanilla_js_SPA_starter_kit/blob/main/src/utils/useEffect.js 컴포넌트의 생명주기를 관리 하는 useEffect 리액트 훅을 구현하려 했다. 실제 useEffect는 아래와 같이 동작하지 않는다. 오해 금지단지 내 vanilla js SPA 환경에서 사용할 함수 추상화 한 것일 뿐먼저 내 vanilla js SPA 환경에서는 모든 렌더링을 HTMLElement.innerHTML로 한다.즉 컴포넌트 마운트, 업데이트, 언마운트 모두 innerHTML로 되므로HTMLElement의 변경 감지가 필요하다. MutationObserver api를 사용하면 해당 HTMLElement의 변경을 감지할 수..

article thumbnail
useState 구현

완성본 코드https://github.com/donghyun1998/vanilla_js_SPA_starter_kit/blob/main/src/utils/useState.js 바닐라 자바스크립트로 useState없이 온몸 비틀기로 사이트 만들다가 도저히 안되겠어서 useState 구현 시작했다.전에 배운 클로저를 이용해서 useState가 호출되는 시점에 인스턴스를 만들고 getState, setState를 리턴하게 해서 구현했다. 근데 다 정상적으로 되지만 render함수가 갱신되지를 않았다.function useState(oldState, render) { let state = [oldState]; const getState = () => { return state[0]; }; const ..

next.js 블로그 제작 후기
<frontend>/next.js 2023. 12. 25. 23:39

https://donghyun1998.github.io/ https://donghyun1998.github.io/ donghyun1998.github.io 42 서울 webserv과제가 끝난 후 빈둥대던 와중 sunhwang님이 nextjs로 개인 blog 만들기 스터디를 모집하시길래 후다닥 들어갔다. c, c++, webserv에서 배운 기본 지식? 정도만 알고 있는 나에겐 스터디 첫날 스터디원분들의 대화를 10퍼센트도 이해하지 못했다. 그래서 모르는 키워드들을 노션에 전부 적어두고 스터디장이신 sunhwang님을 붙잡고 죄다 물어봤다. 다행히 webserv에서 배운 지식들 기반으로 여러 번 여쭤본 결과 조금이나마 이해할 수 있었다. 한 달 동안 진행된 스터디에서 아주 많은 것들을 얻을 수 있었다. 1..

article thumbnail
nextjs mongoDB id 서버컴포넌트에서 클라이언트 컴포넌트로 안보내짐
<frontend>/next.js 2023. 12. 21. 01:27

nextjs로 게시판 만들어보고 있는데 기가 막힌 상황이 생겼다. // server component export default async function List() { let db = (await connectDB).db("noticedb"); let result = await db.collection("post").find().toArray(); return ( ); } // client component export default function ListItem({ result }) { // console.log(result); return ( {result.map((value, index) => { return ( {value.title} 🔧 { fetch("/api/post/delete", {..