米薩克
  • 首頁
  • KBtalKing Pro
  • 關於作者
  • 鍵盤
  • 滑鼠
  • 工具
  • 網站連結
  • 首頁
  • KBtalKing Pro
  • 關於作者
  • 鍵盤
  • 滑鼠
  • 工具
  • 網站連結
米薩克

Mesak 敗家、筆記、生活

Monthly Archives

5 月 2022

JavaScript

[JS] 利用 ES6 的 Classes 切割 API Data 建立乾淨的架構

by Mesak 2022-05-30
written by Mesak

前端開發中的時候,很容易把 API 事件寫在同一個 component 裡面,大部分人會進行封裝,讓傳送 API 的方法變得更簡單

先前碰到同事裡用前端框架系統 Vue 的時候,則是把 API 放到 Vuex 裡面,之前看過 React 裡面,如果上下層傳遞有點過於遙遠或是複雜,通常會用 State 來管控, Vue 使用 Vuex ,React 則是用 redux 來表達貫穿這個元件的參數。

不過正如上面說的 Vuex 跟 redux 都是用來放狀態的,如果拿來放其他東西,並不是說不可以,只是如果在物件導向的裡面中,這樣就違反了 單一功能原則的項目,狀態管理就不再是狀態管理。

自從看了一點 Clean Code的書之後,開始針對 Clean Architecture 很感興趣,原本我主要寫後端跟一點點的前端,開始把後端架構邏輯設計延伸到了前端,開始修正前端同事的程式碼。

Clean Architecture:

Clean Architectur
From Layers and Inversion of Control

回到正題 要實現乾淨的架設設計,首先先把專案中的 Vuex 裡面,包了一堆 API 的模式給抽離開來,去年我重新理解一次 新的 JavaScript 的時候,發現 ES6 有個相當好用的東西叫做 Classes 如果你懂一點物件導向就可以知道這個東西是用來做什麼的。

實際操作了一下真的讓我感動到哭,很久很久以前操作 JavaScript 的時候要實現到類似的事情必須要 function 一層包了一層才有可能實現這件事情,現在原生 JS 支援把這個東西當成特別的 function 讓你使用更簡潔的方式建立物件,以及處理繼承,真的相當方便

這邊先設計一個範例,採用 https://reqres.in 來顯示 REST API 的方式,這個資源是隨意 Google到的,要套用現有的 資源應該也不是問題。

繼續閱讀
2022-05-30 0 comment
0 FacebookTwitterPinterestTumblrRedditLINEEmail
JavaScript

[JS] 傳送 物件/陣列 到 FormData

by Mesak 2022-05-07
written by Mesak

JS 自從有了打包工具之後,很多工具造福不少開發者,以往要送個 AJAX 到後端,大多都是一個頁面處理一個 method

框架化後,每個程式碼開始有了 物件化、封裝方式來做,現在大多都用 axios 來送 AJAX

但是遇到一個問題就是送檔案的時候,需要使用到 FormData 的物類別物件。

但是整個像後端送的程式碼都封裝起來了,要針對一個檔案上傳的方法,做出額外處理,當檔案上傳處理頁面多了之後

維護除錯方法就有點麻煩。

所以比較好的方式還是修改 API 送出前,先把物件轉換好判定是否有 File 類型,然後轉換成 FormData 就可以一勞永逸

繼續閱讀
2022-05-07 0 comment
0 FacebookTwitterPinterestTumblrRedditLINEEmail

米薩克

米薩克

近期文章

  • [程式] Vibe Coding 實作小專案 LinkEveryWord
  • [教學] 利用 n8n 建立 LINE 聊天機器人
  • [開箱] IROCKS K103R 熱插拔無線機械式鍵盤
  • [開箱] IROCKS-K85R 無線機械鍵盤
  • [開箱] IROCKS K75M 銀色上蓋機械式鍵盤

彙整

  • 2025 年 9 月
  • 2025 年 6 月
  • 2025 年 3 月
  • 2024 年 4 月
  • 2023 年 10 月
  • 2023 年 9 月
  • 2023 年 8 月
  • 2023 年 2 月
  • 2023 年 1 月
  • 2022 年 11 月
  • 2022 年 7 月
  • 2022 年 5 月
  • 2022 年 3 月
  • 2022 年 2 月
  • 2021 年 12 月
  • 2021 年 11 月
  • 2021 年 10 月
  • 2021 年 7 月
  • 2021 年 6 月
  • 2021 年 4 月
  • 2021 年 3 月
  • 2021 年 2 月
  • 2020 年 12 月
  • 2020 年 11 月
  • 2020 年 10 月
  • 2020 年 9 月
  • 2020 年 8 月
  • 2020 年 7 月
  • 2020 年 6 月
  • 2020 年 5 月
  • 2020 年 4 月
  • 2020 年 3 月
  • 2020 年 2 月
  • 2020 年 1 月
  • 2019 年 12 月
  • 2019 年 11 月
  • 2019 年 10 月
  • 2019 年 9 月
  • 2019 年 8 月
  • 2019 年 7 月
  • 2019 年 6 月
  • 2019 年 5 月
  • 2019 年 4 月
  • 2019 年 3 月
  • 2019 年 2 月
  • 2019 年 1 月
  • 2018 年 12 月
  • 2018 年 11 月
  • 2018 年 9 月
  • 2018 年 8 月
  • 2018 年 7 月
  • 2018 年 6 月
  • 2018 年 5 月
  • 2018 年 4 月
  • 2018 年 3 月
  • 2018 年 2 月
  • 2018 年 1 月
  • 2017 年 12 月
  • 2017 年 11 月
  • 2017 年 10 月
  • 2017 年 9 月
  • 2017 年 8 月
  • 2017 年 6 月
  • 2017 年 4 月
  • 2017 年 3 月
  • 2017 年 2 月
  • 2017 年 1 月
  • 2016 年 12 月
  • 2016 年 11 月
  • 2016 年 10 月
  • 2016 年 9 月
  • 2016 年 8 月
  • 2016 年 7 月
  • 2016 年 6 月
  • 2016 年 5 月
  • 2016 年 4 月
  • 2016 年 3 月
  • 2016 年 1 月
  • 2015 年 12 月
  • 2015 年 11 月
  • 2015 年 10 月
  • 2015 年 9 月
  • 2015 年 8 月
  • 2015 年 7 月
  • 2015 年 6 月
  • 2015 年 5 月
  • 2015 年 4 月
  • 2015 年 3 月
  • 2015 年 2 月
  • 2015 年 1 月
  • 2014 年 12 月
  • 2014 年 11 月
  • 2014 年 10 月
  • 2014 年 9 月
  • 2014 年 8 月
  • 2014 年 7 月
  • 2014 年 6 月
  • 2014 年 5 月
  • 2014 年 4 月
  • 2014 年 3 月
  • 2014 年 2 月
  • 2014 年 1 月
  • 2013 年 12 月
  • 2013 年 11 月
  • 2013 年 9 月
  • 2013 年 8 月
  • 2013 年 7 月
  • 2013 年 6 月
  • 2013 年 5 月
  • 2013 年 4 月
  • 2013 年 3 月
  • 2013 年 2 月
  • 2013 年 1 月
  • 2012 年 12 月
  • 2012 年 11 月
  • 2012 年 10 月
  • 2012 年 9 月
  • 2012 年 8 月
  • 2012 年 7 月
  • 2012 年 6 月
  • 2012 年 5 月
  • 2012 年 4 月
  • 2012 年 3 月
  • 2012 年 2 月
  • 2012 年 1 月
  • 2011 年 12 月
  • 2011 年 11 月
  • 2011 年 10 月
  • 2011 年 9 月
  • 2011 年 8 月
  • 2011 年 7 月
  • 2011 年 6 月
  • 2011 年 5 月
  • 2011 年 4 月
  • 2011 年 3 月
  • 2011 年 2 月
  • 2010 年 11 月
  • 2010 年 10 月
  • 2010 年 9 月
  • 2010 年 7 月
  • 2010 年 4 月
  • 2010 年 3 月
  • 2009 年 11 月
  • 2008 年 12 月
  • 2008 年 10 月
  • 2008 年 9 月
  • 2008 年 8 月
  • 2008 年 7 月
  • 2008 年 6 月
  • 2008 年 4 月
  • 2008 年 3 月
  • 2008 年 2 月
  • 2008 年 1 月
  • 2007 年 12 月
  • 2007 年 11 月
  • 2007 年 10 月
  • 2007 年 9 月
  • 2007 年 8 月
  • 2007 年 7 月
  • 2007 年 6 月
  • 2007 年 5 月
  • 2007 年 4 月
  • 2007 年 3 月
  • 2007 年 2 月
  • 2007 年 1 月
  • 2006 年 12 月
  • 2006 年 11 月
  • 2006 年 10 月
  • 2006 年 9 月
  • 2006 年 8 月
  • 2006 年 7 月
  • 2006 年 6 月
  • 2006 年 5 月
  • 2006 年 3 月
  • 2006 年 2 月
  • 2006 年 1 月
  • 2005 年 12 月
  • 2005 年 11 月
  • 2005 年 10 月
  • 2005 年 9 月
  • 2005 年 8 月

分類

  • 個人配件
  • 咖啡
  • 家用主機
  • 居家
    • 家具
    • 家電
  • 工具
    • 文具
  • 影音
  • 玩具
  • 硬體
    • 3D Printer
    • 其他周邊
    • 喇叭
    • 手把
    • 手機
    • 滑鼠
    • 相機
    • 耳機
    • 鍵盤
    • 電源
  • 碎碎念念
  • 程式
    • Chrome extensions
    • JavaScript
    • PHP
    • Python
    • Vue
    • WordPress
  • 網路資訊
  • 美食
  • 軟體
  • 遊戲
  • 遊玩
  • 運動

書籤

  • 歡迎交換連結

About

Mesak

mesak

http://about.me/mesak

Contact:

Mesak Gmail

Histats:

Online:

2022 年 5 月
一二三四五六日
 1
2345678
9101112131415
16171819202122
23242526272829
3031 
« 3 月   7 月 »
  • Facebook
  • Twitter

@2020- All Right Reserved. Designed and Developed by PenciDesign


Back To Top
米薩克
  • 首頁
  • KBtalKing Pro
  • 關於作者
  • 鍵盤
  • 滑鼠
  • 工具
  • 網站連結
@2020- All Right Reserved. Designed and Developed by PenciDesign