前段時間練習了一些 React 的基礎,對於 JSX 以及一些 hook 的用法比較有概念,所以就以 Bruce 的 React 課程實作再來練習,樣式部分以 Tailwind 為主此外也搭配 TS 來撰寫。
1. Header
- 製作 IGHeader 元件,因為到不同頁面都會有 header 存在,所以可以將它放在外面的共用元件。
1 | const IGHeader: React.FC = () => { |
2. IGContainer
頁面佈局設定,除了 限時動態頁面會呈現外,在追蹤者頁面也會使用到
- 使用 Tailwind 設定左右版面以及當螢幕不同尺寸的設定
- 將樣式寫在(style.div 裏面),作為一個組件 export 出去
3. 限時動態列表(IGStory)
- 因隸屬於 home 裡面的位置,所以可以將檔案,放在 home 資料夾中,屬於 home 中的組件
//通常在一份專案中不用引入兩個 css 框架
實作:- List Container 的容器
文件
- 在組建內部要使用 JS 相關的邏輯的寫法,要在要面用大括號刮起來
- 每一個小圖都是一個 item ,所以可以先製作組件
- List Container 的容器
限時動態 item 組件
- 此組件建立其中的小項目
1 | import React from 'react' |
外層
- 在外層的主要檔案,就是將模板建立好,讓 item 可以 map 進去
1 | const IGStory: React.FC = () => { |
3. User 組件
- 使用者資訊表,在不同區塊都有重複出現,所以可以抽成共用組件
- 現定義好 props 的型別
- 依照藥的版型來切出樣貌,將變數帶入
1 | type IGUserProps = { |
- memo 對於重複渲染,效能優化使用
post 組件
- 分為三個部分
- user
- 可以使用前面所製作的 user 組件
- img
- 直接放入該項圖片
- 評論區
- 也可以製作成小組件,最後再放入 post 組件
- 注意傳入 props 要先設定好傳入的型別
1 | import React from 'react' |
profile 區塊
實作快速,直接做出簡易的版面
套用前面所做的 IGUser 即可以使用
1 | import IGUser from "components/IGUser" |
小結
此次練習在使用 Tailwind 有些不習慣,主要是在於要稍微記得他的關鍵字並去文件查找屬性來應用,待使用到第三的區塊切版時就變得快速些~
另外,使用在課程中 Bruce 也會去說明每個區塊的切割以及重用性,可以將檔案分別放在哪個檔案,以利未來維護。
過去可能拿版面並未想太多,或是沒有多餘時間分析每一頁面的某些區塊是否有重複,我們可以依據建立開關或傳入的資料區紹維變動下版面,就可以達到一起使用 component 的效果。