이번 프로젝트에서는 알림 기능이 중요하기 때문에PWA를 이용해서 프로젝트를 진행하기로 했다. 그래서 본격적인 프로젝트를 시작하기 전에,VitePWA 플러그인을 이용해서 적용해보고 Vercel을 이용해서 간단하게 배포 후 잘되나 확인해보려고 한다.고고 1. Vite기반 React프로젝트 만들기사실 react가 아니어도 크게 상관없을 것 같다.vite만 기반으로 된다면 괜찮음 npm create vite@latest 프로젝트명명령어를 통해 프로젝트를 만들어주고 2. Vite PWA 설치 및 설정https://vite-pwa-org.netlify.app/ Vite Plugin PWAZero-config PWA Framework-agnostic Plugin for Vite and Integrationsvite..
프로젝트를 진행하면서, 그림 심리 검사를 하는 기능을 넣게 되면서 그림그리는 기능이 필요하게 되었다. 하고싶은건 캐치마인드처럼 웹에서도 마우스로 그릴 수 있고, 우리 프로젝트는 웹앱 기반이 될 것이기 때문에 터치로도 그릴 수 있는 기능으로 하고 싶었다. 프로젝트 환경 React + TypeScript 우선, 리액트를 쓰기 때문에 라이브러리가 엄청 많아서 처음에는 라이브러리를 이용해서 그림을 그릴려고 했다. 후보 1. 이 분야에서 제일 많이 쓰는 것 같아 보이던 Fabric.js Introduction to Fabric.js. Part 1. — Fabric.js Javascript Canvas Library Introduction to Fabric.js. Part 1. Today I'd like to in..
우선 설치부터, tailwind npm install -D tailwindcss postcss autoprefixer Next UI npm i @nextui-org/react framer-motion 이제 설정해주자 tailwind.config.js에서 /** @type {import('tailwindcss').Config} */ const {nextui} = require("@nextui-org/react"); export default { content: [ "./index.html", "./src/**/*.{js,ts,jsx,tsx}", "./node_modules/@nextui-org/theme/dist/**/*.{js,ts,jsx,tsx}", ], theme: { extend: {}, }, da..
기본 세팅 : typescript, react 기본적으로는 input 태그 사용 이런식으로 안보이는 input 태그 생성 그러고 나서 react의 useRef를 이용해서 const fileInput = useRef(null); 이런식으로 다룰 변수를 하나 만들어줌 그리고 file을 저장하기 위해 useState를 써서 const [file, setFile] = useState(null) file 변수도 생성 버튼이 눌리면 → 파일 선택이 되도록하기 위해서 버튼 하나 생성 후 onClick 걸어줌 {fileInput.current?.click()}}> 업로드하기 p태그 스타일은 tailwind CSS라 무시가능 그 다음에 input 태그에 fileInput을 ref로, onChange함수를 만들어서 걸어주..