# 前端課程大綱 大大綱 1. HTML+CSS 2. javascript 3. react ## HTML+CSS ### 1.認識html基礎標籤 + 開發環境 - VS Code 與 Live Server 擴充功能 - HTML 是什麼?與瀏覽器的關係 - 基本結構:<!DOCTYPE html>、<html>、<head>、<body> - 常見標籤介紹與使用 - img src & lorem - 巢狀結構與語意化標籤概念 - 帶入DOM Tree觀念 - 標籤與SEO、爬蟲的關係 練習:筆記常用標籤 [day 1 筆記](https://hackmd.io/@YYT4N8b5ROyVhjdGbxNqPA/Sk-ocZTExg) ### 2.CSS 基礎 - CSS 是什麼?與 HTML 的關係 - 常用屬性介紹(margin padding color ) - 尺寸計算 - 三種寫法:inline、internal、external - 選擇器基礎(element, class ., id #) - 顏色單位(Hex, RGB, HSL) - CSS 優先順序與繼承 - 使用 Chrome 開發者工具查看樣式與除錯 練習: 按照設計寫出網頁 [day2筆記](https://hackmd.io/@YYT4N8b5ROyVhjdGbxNqPA/H1GDkXaEeg) ### 3.盒模型 - Box Model 介紹 - 教你用chrome dev tool 看盒模型 - 顯示模式(block, inline, inline-block, none) - display: flex 基礎 主軸/交錯軸(row/column) - 對齊(justify-content, align-items) - position 屬性介紹(static, relative, absolute, fixed) - z-index 與圖層控制 - 提一嘴grid 練習: flex小遊戲 [day3筆記](https://hackmd.io/@YYT4N8b5ROyVhjdGbxNqPA/HJuoX_yrle) ### 4.基礎排版 - 切版開發示範 - 應題目要求排版 - 小型專案實作(靜態個人簡介頁、產品介紹頁) - 作品提案範例: > 食譜頁面 >電影介紹頁 >自我介紹卡片 >線上履歷頁(含聯絡表單、圖片、RWD) [day4筆記](https://hackmd.io/@YYT4N8b5ROyVhjdGbxNqPA/BJxfkakSll) ### 5. RWD & animation - Media Query 與響應式設計基礎 - transition、animation - CSS 狀態控制(:hover, :active, :focus) 練習:設計小動畫 & PC/mobile兼容版面 ## JavaScript ### 1.開發環境 + 基本概念講解 - 下載nodeJS + prettier排版工具設定 - JS 的執行環境(瀏覽器、Node) - 事件驅動、非同步與單執行緒簡介(Event Loop 概念入門) - var / let / const、bool、object、array - 瀏覽器中的 window、全域 vs 區域變數 - JS 和其他語言(如 C、Java)的差異(如型別鬆散、非同步處理方式) 練習: 最愛的BMI計算機 OK吧 ### 2.DOM API - DOM 是什麼?DOM Tree 是如何構成的? - 常用 DOM API: >querySelector, getElementById, innerText, innerHTML >.style, .classList.add/remove/toggle - 陣列操作搭配 DOM push, splice, map, forEach - addEventListener、event object - 常見事件:click、submit、keyup - 表單控制與資料讀取(input.value) 練習:TO-DO list ### 3. fetch data - fetch function - 非同步call API async/await & promise - JSON parse - localStorage 操作 練習:配合外部資料開發 ### 4. 配合CSS開發像樣的app(Optional) ## React ### 1.開發環境 + 基礎介紹 - 介紹npm + package.json - 為什麼需要 React?SPA 與傳統網頁的差別 - 組件化(Component-based)思想簡介 - 使用 Vite 或 CRA 建立 React 專案 - 基礎專案架構&開發流程 - JSX 語法介紹與和 HTML 的差異 - css樣式寫法 練習: 建立一個 HelloWorld Component 練習多個元件組裝成一個頁面 ### 2.Component & Props & States - 名詞解釋 - useState狀態控制簡單例子:Counter、Switch開關 - 條件渲染 & 列表渲染 練習:水果列表、counter ### 3.useEffect 與副作用 - useEffect 的觸發時機 - 依賴陣列(dependency array) - 初始載入、狀態變化、清除函式 - 搭配 fetch 做資料取得 練習: 頁面載入後自動抓時間或 IP 載入一段 API 資料(ex: JSONPlaceholder) ### 4.小專案開發 專案建議: Todo App 天氣查詢頁 小型留言板 註冊/登入頁 UI ### 可延伸 (Optional) - redux狀態控制 - axios(取代fetch) - react router - TypeScript(更安全的型別控制) - style不同寫法(tailwindCSS、MUI、Boostrap) - nextJS - jest 測試框架 - framer motion、animeJS動畫套件 - threeJS/WebGL 3D模型 - SEO相關 - 效能優化相關