3k3 分鐘

# 問題 由於此專案使用 GSAP 而非 framer motion 導致 shadcn/ui 的 accordion 元件在此專案中是沒有展開/收起動畫的,因此需用 GSAP 自行製作動畫效果 # GSAP 動畫建構重點 以下 shadcn/ui 官方的寫法,若專案有 framer motion 應能直接使用 return ( <Accordion type='single' collapsible className='w-full'> <AccordionIt
1.6k1 分鐘

# 設置 @ 路徑別名 到 tsconfig.json 加入 compilerOptions 的 paths 設定: baseUrl:設定為 .,確保路徑別名從此目錄開始計算。 paths:定義別名,@components/_ 代表 src/components/_。 { "compilerOptions": { "baseUrl": ".", // 設定為專案根目錄 "paths": { &
6.3k6 分鐘

# 前言 先不用實際去後端寫 API Endpoint,直接用 Dummy data 來熟悉整套 Workflow,以列出 Dummy data 產品列表為例,這樣可以更快熟悉整套開發流程,並且可以先把前端的畫面先做出來,等到後端準備好後再直接接上 API Endpoint # 後端 setup 建立 Django 專案 建立、啟用虛擬環境 下載並輸出此專案的套件清單(corsheaders、JWT、drf...) django-admin startproject backend pip install ... pip freeze > requirements.txt # 前
2.2k2 分鐘

# 前言 這次開發 OEM 代工網站用 Vite作為開發伺服器 ,而非傳統的 Create React App (CRA),來縮短前端建構、開發與部署時間,不用每次修改都要等數十秒才能看到新的畫面,讓開發體驗更好。 前端以 React + TypeScript + Vite 為核心,結合 Tailwind CSS 及 UI 元件庫(如 shadcn/ui, lucide-react) 後端則用 Django + DRF 快速開發 API 服務,在已瞭解 Redux 底層原理及為了在開發速度取得優勢的情況下,用 TanStack Query 來管理 Server Data 的狀態。
6.1k6 分鐘

# 在 React + TypeScript 專案中導入 Swiper JS Swiper 官方 Demo 能看到所有種類的 swiper npm i swiper # 與傳統 HTML + JS 專案的差異 在傳統 HTML/JS 中,需要使用: const swiper = new Swiper(".swiper", { ...options }); 但在 React 內部,Swiper 是以 組件方式封裝,它的行為是由 props 控制的: <Swiper modules=&#
6.6k6 分鐘

# CSR 原理及常見問題 用純 React 開發 CSR(Client-Side Rendering)、SPA(Single Page Application) Web APP 時,儘管在頁面切換速度、性能上有卓越的優勢,但最麻煩的地方莫過於 SEO。 CSR 之所以快,原理就是 瀏覽器收到的 HTML 只有一個根元件 <div id="root"></div> 和一個打包好的 JS 檔,之後所有內容會由 JS 在 client 端瀏覽器執行後動態渲染出來 雖然 Google 現在有支援 CSR 渲染,但因爬蟲的 Crawl
3.6k3 分鐘

# 問題說明 前陣子看到同事 A 與老闆不斷爭執一個內部系統的其中一個問題,一問才知道這個問題已經卡了好幾個月還無解。 問題之所以困難是因為它是偶發性的,可能今天突然正常,沒幾天後又死當且發生機率在每個人的電腦也不一樣,日誌上卡這個 Task 卡了好幾個月,問題描述也只能掛著各種臆測造成死當的工作流程以及錯誤訊息 很難觸發問題,也很難去解決問題,打開 console 看也始終只能看到 Uncaught TypeError: Cannot read property 'xxx' of undefined 錯誤,但是卻不知道是哪裡的 xxx 會是 undefined。 # 解決方法
8k7 分鐘

# 後端 在 UserProfile 模型中加入 avatar 欄位 建立 API 讓用戶能上傳/更新頭像 設定 Django 的 MEDIA_URL 讓圖片可存取 確保未登入用戶無法上傳頭像 # model(新增用戶頭貼欄位) 透過擴展 User 模型(資料表) 加入 avatar 欄位,這樣可以不影響現有的 User 模型(資料表),而是額外增加一個 UserProfile 模型(資料表)來存放用戶的頭像圖片 在 Django ORM 物件關聯映射(Object-Relational Mapping)中,在 UserProfile 模型(資料表)內這樣定義: class Us