AC - Dev C2 前端開發實作 經驗回顧

閱讀時間約 5 分鐘

C2 開始終於使用到 visual studio code,
這個階段學到 JavaScript 核心概念、DOM 操作、API 串接、MVC 架構,
每天都在 coding,每週都在追進度,
用壓縮到極致的時間寫完作業,

但跟著課程內容寫程式碼,真的有學到嗎?

有,吧。
畢竟在寫最後的電影清單作業,遇到不少挫折,
在經過不斷反思,回頭翻筆記跟課程講解,
反而有種在失敗中成長的感覺。

電影清單畫面:


最煩惱的問題:收藏按鈕的樣式失效

一開始模式只要切換,或是使用搜尋功能,
已經加入收藏的電影,又會渲染成初始樣式,
而不是像圖片裡看到的,按鈕會變成紅色x。

直覺就是跟收藏功能相關的函式:

addToFavorite(id) {
const list = JSON.parse(localStorage.getItem('favoriteMovies')) || []
const movie = movies.find((movie) => movie.id === id)
if (list.some((movie) => movie.id === id)) {
return alert('此電影已加入收藏清單')
}
list.push(movie)
localStorage.setItem('favoriteMovies', JSON.stringify(list))
}

我看著這段程式碼,
想用 classList.add() 把樣式加上,
腦子卡了好幾個小時,卻百思不得其解,
不知道要怎麼抓 DOM 節點,

如果是在渲染畫面的時候,更改 innerHTML 呢?

於是我將目標轉向渲染畫面的函式,也許這裡有突破點:

renderMovieGallery(data) {
let rawHTML = ''
data.forEach((item) => {
rawHTML += `
...
<button class="btn btn-info btn-add-favorite" data-id="${item.id}">
+
</button>
...
`
}
})
dataPanel.innerHTML = rawHTML
}
如果是我會怎麼做?
如果我遇到類似情境會怎麼做?

假設我有一堆書要上架,有些有折扣、有些沒有,
而我的工作就是在上架前,把折扣貼紙貼在對的書上,
讓顧客一看就知道哪些有優惠活動。

那我會這麼做:
去查看工聯單寫著哪些書有折扣,一邊比對一邊貼上貼紙。

而在程式碼裡面,把收藏電影的資料放在 localStorage,
可以用來比對資料(工聯單),
要在渲染畫面前(上架前),先比對是不是收藏過(查看工聯單比對資料),
把樣式修改(貼上貼紙)後再渲染出來。

renderMovieGallery(data) {
let rawHTML = ''
const list = JSON.parse(localStorage.getItem('favoriteMovies')) || []
// 把要比對的資料抓出來​ 存在 list 中

data.forEach((item) => {
// 用迴圈比對 data 裡面的​項目

if (list.some((movie) => movie.id === item.id)) {
// 如果在 data 的項目符合 list 裡的收藏
// 把按鈕渲染成已加入收藏的樣式
rawHTML += `
...
<button class="btn btn-danger btn-remove-favorite" data-id="${item.id}">
x
</button>
...
`
} else {
// 如果不符合 則渲染成初始樣式
rawHTML += `
...
<button class="btn btn-info btn-add-favorite" data-id="${item.id}">
+
</button>
...
`
}
})
dataPanel.innerHTML = rawHTML
}

回頭試跑網頁,按鈕可以正常使用,
不枉費我卡了一整個下午..


從 C1 一路上到了 C2,
知道要寫出漂亮 CSS 樣式的方法有很多種,
也知道做出 JavaScript 的功能有很多方法,
對我而言最困難的不是語法、物件與陣列或MVC 架構,
而是如何拆解問題。

換個角度思考,自己會怎麼做?
再把作法切成微小的步驟。


5會員
14內容數
本來是理科生,在被物理放棄之後成為了文科生,有時理性思考,偶爾卻會脫口出感性的字句;喜歡打字的聲音,以生活為靈感寫下過去、現在與未來。
留言0
查看全部
發表第一個留言支持創作者!
碎碎念 的其他內容
理解問題,然後拆解,最後解決它。 通常網頁開發的課程流是 HTML - CSS - JavaScript , 但在 AC 一開始就先淺談 JavaScript , 就是要先建立運算思維:
孔子說三十而立,我卻三十而迷失了自己, 這個世界給得價值觀太過沈重, 原本不在意的,在褪去青春之後,都成為了後悔的來源; 後悔沒有選OO系、沒有攻讀研究所、沒有超前部署自己的人生, 最後遺失了勇氣,想要往前邁進得步伐依舊跨不出舒適圈, 於是季節繼續更迭、身邊的夥伴來來去去, 好像只有我被自己困住了。
理解問題,然後拆解,最後解決它。 通常網頁開發的課程流是 HTML - CSS - JavaScript , 但在 AC 一開始就先淺談 JavaScript , 就是要先建立運算思維:
孔子說三十而立,我卻三十而迷失了自己, 這個世界給得價值觀太過沈重, 原本不在意的,在褪去青春之後,都成為了後悔的來源; 後悔沒有選OO系、沒有攻讀研究所、沒有超前部署自己的人生, 最後遺失了勇氣,想要往前邁進得步伐依舊跨不出舒適圈, 於是季節繼續更迭、身邊的夥伴來來去去, 好像只有我被自己困住了。
你可能也想看
Google News 追蹤
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
美國總統大選只剩下三天, 我們觀察一整週民調與金融市場的變化(包含賭局), 到本週五下午3:00前為止, 誰是美國總統幾乎大概可以猜到60-70%的機率, 本篇文章就是以大選結局為主軸來討論近期甚至到未來四年美股可能的改變
Thumbnail
Faker昨天真的太扯了,中國主播王多多點評的話更是精妙,分享給各位 王多多的點評 「Faker是我們的處境,他是LPL永遠繞不開的一個人和話題,所以我們特別渴望在決賽跟他相遇,去直面我們的處境。 我們曾經稱他為最高的山,最長的河,以為山海就是盡頭,可是Faker用他28歲的年齡...
AC電源 市場の現状と将来展望に関する包括的な洞察を提供する、車速センサー市場2023年調査報告書がリリースされました。当レポートでは、業界の市場動向、成長促進要因、課題、機会などの詳細な分析に加え、競争環境と市場主要企業の市場シェア分析についても徹底検証しています。https://demo.s
AC-DC外部電源(EPS) 市場の現状と将来展望に関する包括的な洞察を提供する、車速センサー市場2023年調査報告書がリリースされました。当レポートでは、業界の市場動向、成長促進要因、課題、機会などの詳細な分析に加え、競争環境と市場主要企業の市場シェア分析についても徹底検証しています。http
AC電源 市場の現状と将来展望に関する包括的な洞察を提供する、車速センサー市場2023年調査報告書がリリースされました。当レポートでは、業界の市場動向、成長促進要因、課題、機会などの詳細な分析に加え、競争環境と市場主要企業の市場シェア分析についても徹底検証しています。https://issuu.
AC-DC外部電源(EPS) 市場の現状と将来展望に関する包括的な洞察を提供する、車速センサー市場2023年調査報告書がリリースされました。当レポートでは、業界の市場動向、成長促進要因、課題、機会などの詳細な分析に加え、競争環境と市場主要企業の市場シェア分析についても徹底検証しています。http
做了很多的提問,我可以創造什麼?竟然是什麼都可以。 拖延症末期拖延了一段時間,終於讓選擇不再是選擇,而是實際行動去創造。哇哦還有什麼比這個更好的? 關於AC是什麼有空再來慢慢地寫下每天的記錄,今天來分享昨天接收到的禮物。 近期跟著群組進行植入物音頻除障練習,不抱任何期待投射的,只是想看看會發生什麼。
Thumbnail
2021年7月22日,非常感謝AC又舉辦了每月一次的數位職涯相談室啦! 本次邀請到的就是本BLOG 方格子 的前端及全端工程師:Jiang & Kuan 來分享現實職場當中前後端各別負責的工作內容。
Thumbnail
公分公斤, 慢慢儲蓄; 長成大人, 不用筆試, 還蠻快樂. 多了責任, 家庭社會, 種種處境; 方向對了, 依序前進; 枝強葉茂. 勤奮盡責, 助己益人; 正牌大人? 誰說了算?
Thumbnail
堅毅地, 挺直著身軀; 佇立於天地, 宇宙中.   順勢地, 汲取著土地養分, 吸呼著空氣芬芳; 及時的, 收納下光與熱. 回報以, 丰姿綽約.  
Thumbnail
歡喜接收, 真誠良善. 光明新境, 先獨樂樂; 順路賞賞, 優良佳作. 靜靜品嚐; 沉澱心靈, 愉悅心情, 清楚心意, 明亮心境; 心愛蒞臨.
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
美國總統大選只剩下三天, 我們觀察一整週民調與金融市場的變化(包含賭局), 到本週五下午3:00前為止, 誰是美國總統幾乎大概可以猜到60-70%的機率, 本篇文章就是以大選結局為主軸來討論近期甚至到未來四年美股可能的改變
Thumbnail
Faker昨天真的太扯了,中國主播王多多點評的話更是精妙,分享給各位 王多多的點評 「Faker是我們的處境,他是LPL永遠繞不開的一個人和話題,所以我們特別渴望在決賽跟他相遇,去直面我們的處境。 我們曾經稱他為最高的山,最長的河,以為山海就是盡頭,可是Faker用他28歲的年齡...
AC電源 市場の現状と将来展望に関する包括的な洞察を提供する、車速センサー市場2023年調査報告書がリリースされました。当レポートでは、業界の市場動向、成長促進要因、課題、機会などの詳細な分析に加え、競争環境と市場主要企業の市場シェア分析についても徹底検証しています。https://demo.s
AC-DC外部電源(EPS) 市場の現状と将来展望に関する包括的な洞察を提供する、車速センサー市場2023年調査報告書がリリースされました。当レポートでは、業界の市場動向、成長促進要因、課題、機会などの詳細な分析に加え、競争環境と市場主要企業の市場シェア分析についても徹底検証しています。http
AC電源 市場の現状と将来展望に関する包括的な洞察を提供する、車速センサー市場2023年調査報告書がリリースされました。当レポートでは、業界の市場動向、成長促進要因、課題、機会などの詳細な分析に加え、競争環境と市場主要企業の市場シェア分析についても徹底検証しています。https://issuu.
AC-DC外部電源(EPS) 市場の現状と将来展望に関する包括的な洞察を提供する、車速センサー市場2023年調査報告書がリリースされました。当レポートでは、業界の市場動向、成長促進要因、課題、機会などの詳細な分析に加え、競争環境と市場主要企業の市場シェア分析についても徹底検証しています。http
做了很多的提問,我可以創造什麼?竟然是什麼都可以。 拖延症末期拖延了一段時間,終於讓選擇不再是選擇,而是實際行動去創造。哇哦還有什麼比這個更好的? 關於AC是什麼有空再來慢慢地寫下每天的記錄,今天來分享昨天接收到的禮物。 近期跟著群組進行植入物音頻除障練習,不抱任何期待投射的,只是想看看會發生什麼。
Thumbnail
2021年7月22日,非常感謝AC又舉辦了每月一次的數位職涯相談室啦! 本次邀請到的就是本BLOG 方格子 的前端及全端工程師:Jiang & Kuan 來分享現實職場當中前後端各別負責的工作內容。
Thumbnail
公分公斤, 慢慢儲蓄; 長成大人, 不用筆試, 還蠻快樂. 多了責任, 家庭社會, 種種處境; 方向對了, 依序前進; 枝強葉茂. 勤奮盡責, 助己益人; 正牌大人? 誰說了算?
Thumbnail
堅毅地, 挺直著身軀; 佇立於天地, 宇宙中.   順勢地, 汲取著土地養分, 吸呼著空氣芬芳; 及時的, 收納下光與熱. 回報以, 丰姿綽約.  
Thumbnail
歡喜接收, 真誠良善. 光明新境, 先獨樂樂; 順路賞賞, 優良佳作. 靜靜品嚐; 沉澱心靈, 愉悅心情, 清楚心意, 明亮心境; 心愛蒞臨.