<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://phdev.dev//</loc>
<lastmod>2025-10-21</lastmod>
</url>
<url>
<loc>https://phdev.dev//blog</loc>
<lastmod>2025-10-21</lastmod>
</url>
<url>
<loc>https://phdev.dev//projects</loc>
<lastmod>2025-10-21</lastmod>
</url>
<url>
<loc>https://phdev.dev//tags</loc>
<lastmod>2025-10-21</lastmod>
</url>
<url>
<loc>https://phdev.dev//blog/2019-05-28-連續記錄挑戰Day01 - CSSBattle介紹</loc>
<lastmod>2019-05-28T19:35:07.000Z</lastmod>
</url>
<url>
<loc>https://phdev.dev//blog/2019-05-29-連續記錄挑戰Day02-1-Simply-Square</loc>
<lastmod>2019-05-29T19:51:38.000Z</lastmod>
</url>
<url>
<loc>https://phdev.dev//blog/2019-05-30-連續記錄挑戰Day03-2-Carrom</loc>
<lastmod>2019-05-30T20:26:09.000Z</lastmod>
</url>
<url>
<loc>https://phdev.dev//blog/2019-05-31-連續記錄挑戰Day04-3-Push-Button</loc>
<lastmod>2019-05-31T20:48:04.000Z</lastmod>
</url>
<url>
<loc>https://phdev.dev//blog/2019-06-01-連續記錄挑戰Day05-4-Ups-n-Downs</loc>
<lastmod>2019-06-01T15:53:04.000Z</lastmod>
</url>
<url>
<loc>https://phdev.dev//blog/2019-06-02-連續記錄挑戰Day06-margin-collapse由來與BFC原理</loc>
<lastmod>2019-06-02T18:51:02.000Z</lastmod>
</url>
<url>
<loc>https://phdev.dev//blog/2019-06-03-連續記錄挑戰Day07-5-Acid-Rain</loc>
<lastmod>2019-06-03T19:48:17.000Z</lastmod>
</url>
<url>
<loc>https://phdev.dev//blog/2019-06-04-連續記錄挑戰Day08-calc-原理與應用</loc>
<lastmod>2019-06-04T19:29:22.000Z</lastmod>
</url>
<url>
<loc>https://phdev.dev//blog/2019-06-05-連續記錄挑戰Day09-6-Missing-Slice</loc>
<lastmod>2019-06-05T19:53:29.000Z</lastmod>
</url>
<url>
<loc>https://phdev.dev//blog/2019-06-06-連續記錄挑戰Day10-7-Leafy-Trail</loc>
<lastmod>2019-06-06T20:02:11.000Z</lastmod>
</url>
<url>
<loc>https://phdev.dev//blog/2019-06-07-連續記錄挑戰Day11-8-Forking-Crazy</loc>
<lastmod>2019-06-07T19:07:04.000Z</lastmod>
</url>
<url>
<loc>https://phdev.dev//blog/2019-06-08-連續記錄挑戰Day12-9-Tesseract</loc>
<lastmod>2019-06-08T13:57:47.000Z</lastmod>
</url>
<url>
<loc>https://phdev.dev//blog/2019-06-09-連續記錄挑戰Day13-純CSS手刻三角形</loc>
<lastmod>2019-06-09T13:42:16.000Z</lastmod>
</url>
<url>
<loc>https://phdev.dev//blog/2019-06-10-連續記錄挑戰Day14-10-Cloaked-Spirits</loc>
<lastmod>2019-06-10T20:09:41.000Z</lastmod>
</url>
<url>
<loc>https://phdev.dev//blog/2019-06-11-連續記錄挑戰Day15-11-Eye-of-Sauron</loc>
<lastmod>2019-06-11T07:28:11.000Z</lastmod>
</url>
<url>
<loc>https://phdev.dev//blog/2019-06-12-連續記錄挑戰Day16-12-Wiggly-Moustache</loc>
<lastmod>2019-06-12T18:48:01.000Z</lastmod>
</url>
<url>
<loc>https://phdev.dev//blog/2019-06-13-連續記錄挑戰Day17-transform初探-part1</loc>
<lastmod>2019-06-13T20:28:34.000Z</lastmod>
</url>
<url>
<loc>https://phdev.dev//blog/2019-06-14-連續記錄挑戰Day18-transform初探-part2</loc>
<lastmod>2019-06-14T21:57:18.000Z</lastmod>
</url>
<url>
<loc>https://phdev.dev//blog/2019-06-15-連續記錄挑戰Day19-transform初探-part3</loc>
<lastmod>2019-06-15T19:20:55.000Z</lastmod>
</url>
<url>
<loc>https://phdev.dev//blog/2019-06-16-連續記錄挑戰Day20-float和清除浮動的方法</loc>
<lastmod>2019-06-16T17:53:24.000Z</lastmod>
</url>
<url>
<loc>https://phdev.dev//blog/2019-06-17-連續記錄挑戰Day21-transition-初探-part1</loc>
<lastmod>2019-06-17T18:46:47.000Z</lastmod>
</url>
<url>
<loc>https://phdev.dev//blog/2019-06-19-連續記錄挑戰Day23-CSS3-的-Flexbox-以及適用場景？</loc>
<lastmod>2019-06-19T20:06:45.000Z</lastmod>
</url>
<url>
<loc>https://phdev.dev//blog/2019-06-20-連續記錄挑戰Day24-css-counter</loc>
<lastmod>2019-06-20T19:41:06.000Z</lastmod>
</url>
<url>
<loc>https://phdev.dev//blog/2019-06-21-連續記錄挑戰Day25-透過label-checkbox實現純css手刻RWD選單</loc>
<lastmod>2019-06-21T22:44:37.000Z</lastmod>
</url>
<url>
<loc>https://phdev.dev//blog/2019-06-22-連續記錄挑戰Day26-寫給自己的關於切版時需要注意的細節提醒</loc>
<lastmod>2019-06-22T20:49:07.000Z</lastmod>
</url>
<url>
<loc>https://phdev.dev//blog/2019-06-23-連續記錄挑戰Day27-style-標籤寫在-body-後與-body-前有什麽區別</loc>
<lastmod>2019-06-23T21:15:05.000Z</lastmod>
</url>
<url>
<loc>https://phdev.dev//blog/2019-06-24-連續記錄挑戰Day28-如何使用-jQuery-ui-以range-slider為例</loc>
<lastmod>2019-06-24T20:14:13.000Z</lastmod>
</url>
<url>
<loc>https://phdev.dev//blog/2019-06-25-連續記錄挑戰Day29-純css手刻Tab頁籤</loc>
<lastmod>2019-06-25T18:49:48.000Z</lastmod>
</url>
<url>
<loc>https://phdev.dev//blog/2019-06-26-連續記錄挑戰Day30-CSS3有什麼新特性？</loc>
<lastmod>2019-06-26T18:44:39.000Z</lastmod>
</url>
<url>
<loc>https://phdev.dev//blog/2019-06-27-連續記錄挑戰Day31-初探Boostrap4</loc>
<lastmod>2019-06-27T19:59:23.000Z</lastmod>
</url>
<url>
<loc>https://phdev.dev//blog/2019-06-28-連續記錄挑戰Day32-Git-初探系列-1</loc>
<lastmod>2019-06-28T19:58:56.000Z</lastmod>
</url>
<url>
<loc>https://phdev.dev//blog/2019-06-29-連續記錄挑戰Day33-Float 浮動</loc>
<lastmod>2019-06-29T16:48:12.000Z</lastmod>
</url>
<url>
<loc>https://phdev.dev//blog/2019-06-30-連續記錄挑戰Day34-position-定位</loc>
<lastmod>2019-06-30T15:35:58.000Z</lastmod>
</url>
<url>
<loc>https://phdev.dev//blog/2019-07-01-連續記錄挑戰Day35-Javascript-變數</loc>
<lastmod>2019-07-01T19:12:31.000Z</lastmod>
</url>
<url>
<loc>https://phdev.dev//blog/2019-07-02-連續記錄挑戰Day36-Javascript-運算式與運算子</loc>
<lastmod>2019-07-02T19:33:39.000Z</lastmod>
</url>
<url>
<loc>https://phdev.dev//blog/2019-07-03-連續記錄挑戰Day37-Javascript-述句-part1</loc>
<lastmod>2019-07-03T22:26:20.000Z</lastmod>
</url>
<url>
<loc>https://phdev.dev//blog/2019-07-04-連續記錄挑戰Day38-Javascript-述句-part2</loc>
<lastmod>2019-07-04T20:06:13.000Z</lastmod>
</url>
<url>
<loc>https://phdev.dev//blog/2019-07-05-連續記錄挑戰Day39-Javascript-述句-part3</loc>
<lastmod>2019-07-05T20:44:20.000Z</lastmod>
</url>
<url>
<loc>https://phdev.dev//blog/2019-07-06-連續記錄挑戰Day40-提高效率的一些工具及技巧</loc>
<lastmod>2019-07-06T14:47:18.000Z</lastmod>
</url>
<url>
<loc>https://phdev.dev//blog/2019-07-07-連續記錄挑戰Day41-物件-Object-part1</loc>
<lastmod>2019-07-07T19:09:36.000Z</lastmod>
</url>
<url>
<loc>https://phdev.dev//blog/2019-07-08-連續記錄挑戰Day42-物件-Object-part2</loc>
<lastmod>2019-07-08T19:08:27.000Z</lastmod>
</url>
<url>
<loc>https://phdev.dev//blog/2019-07-09-連續記錄挑戰Day43-物件-Object-part3</loc>
<lastmod>2019-07-09T21:51:40.000Z</lastmod>
</url>
<url>
<loc>https://phdev.dev//blog/2019-07-10-連續記錄挑戰Day44-陣列-Array-part1</loc>
<lastmod>2019-07-10T19:21:00.000Z</lastmod>
</url>
<url>
<loc>https://phdev.dev//blog/2019-07-11-連續記錄挑戰Day45-陣列-Array-part2</loc>
<lastmod>2019-07-11T20:10:30.000Z</lastmod>
</url>
<url>
<loc>https://phdev.dev//blog/2019-07-12-連續記錄挑戰Day46-函式-function</loc>
<lastmod>2019-07-12T21:42:16.000Z</lastmod>
</url>
<url>
<loc>https://phdev.dev//blog/2019-07-13-連續記錄挑戰Day47-閉包-closure</loc>
<lastmod>2019-07-13T18:44:52.000Z</lastmod>
</url>
<url>
<loc>https://phdev.dev//blog/2019-07-14連續記錄挑戰Day48-this</loc>
<lastmod>2019-07-14T19:17:53.000Z</lastmod>
</url>
<url>
<loc>https://phdev.dev//blog/2019-07-15-連續記錄挑戰Day49-遞迴函式-recursive-funciton</loc>
<lastmod>2019-07-15T21:56:25.000Z</lastmod>
</url>
<url>
<loc>https://phdev.dev//blog/2019-07-16-連續記錄挑戰Day50-關於瀏覽器的window物件</loc>
<lastmod>2019-07-16T21:05:57.000Z</lastmod>
</url>
<url>
<loc>https://phdev.dev//blog/2019-07-17 -連續記錄挑戰Day51-使用Javascript操作DOM-Document-Object-Model-part1</loc>
<lastmod>2019-07-17T21:52:13.000Z</lastmod>
</url>
<url>
<loc>https://phdev.dev//blog/2019-07-18-連續記錄挑戰Day52-箭頭函式-arrow-function</loc>
<lastmod>2019-07-18T23:18:14.000Z</lastmod>
</url>
<url>
<loc>https://phdev.dev//blog/2019-07-19-連續記錄挑戰Day53-使用Javascript操作DOM-Document-Object-Model-part2</loc>
<lastmod>2019-07-19T22:21:22.000Z</lastmod>
</url>
<url>
<loc>https://phdev.dev//blog/2019-07-20-連續記錄挑戰Day54-陣列方法的-filter-map-reduce-深入理解與運用</loc>
<lastmod>2019-07-20T20:33:36.000Z</lastmod>
</url>
<url>
<loc>https://phdev.dev//blog/2019-07-22-連續記錄挑戰Day55-使用Javascript操作DOM-Document-Object-Model-part3</loc>
<lastmod>2019-07-22T21:21:57.000Z</lastmod>
</url>
<url>
<loc>https://phdev.dev//blog/2019-07-23-連續記錄挑戰Day56-查找特定li節點的索引值</loc>
<lastmod>2019-07-23T22:13:30.000Z</lastmod>
</url>
<url>
<loc>https://phdev.dev//blog/2019-08-03-其餘參數-Rest-parameter-與展開運算子-Spread-operator</loc>
<lastmod>2019-08-03T14:33:57.000Z</lastmod>
</url>
<url>
<loc>https://phdev.dev//blog/2019-10-10-傳值-By-value-與傳參考-By-reference</loc>
<lastmod>2019-10-10T11:20:58.000Z</lastmod>
</url>
<url>
<loc>https://phdev.dev//blog/2019-10-11-JavaScript-class-類別</loc>
<lastmod>2019-10-11T13:59:01.000Z</lastmod>
</url>
<url>
<loc>https://phdev.dev//blog/2019-10-12-JavaScript-嚴格模式-Strict-mode</loc>
<lastmod>2019-10-12T13:11:12.000Z</lastmod>
</url>
<url>
<loc>https://phdev.dev//blog/2019-10-13-JavaScript-ES6-解構賦值</loc>
<lastmod>2019-10-13T14:11:58.000Z</lastmod>
</url>
<url>
<loc>https://phdev.dev//blog/2019-10-14-ES6-模板字串-Template-literals</loc>
<lastmod>2019-10-14T11:40:27.000Z</lastmod>
</url>
<url>
<loc>https://phdev.dev//blog/2019-11-22-透過-JavaScript-動態建立-HTML-元素的幾種方式</loc>
<lastmod>2019-11-22T22:21:31.000Z</lastmod>
</url>
<url>
<loc>https://phdev.dev//blog/2019-11-30-JavaScript-捕捉-capturing-與氣泡-bubbling</loc>
<lastmod>2019-11-30T21:18:37.000Z</lastmod>
</url>
<url>
<loc>https://phdev.dev//blog/2019-12-05-透過-JavaScript-動態修改CSS-樣式、屬性</loc>
<lastmod>2019-12-05T23:34:29.000Z</lastmod>
</url>
<url>
<loc>https://phdev.dev//blog/2019-12-07-JavaScript-Ajax及XMLHttpRequest物件</loc>
<lastmod>2019-12-07T13:02:39.000Z</lastmod>
</url>
<url>
<loc>https://phdev.dev//blog/2020-01-12-使用-jQuery的-Ajax-技術和介接api</loc>
<lastmod>2020-01-12T10:06:51.000Z</lastmod>
</url>
<url>
<loc>https://phdev.dev//blog/2020-01-18-JavaScript-Promise-Part1</loc>
<lastmod>2020-01-18T21:24:30.000Z</lastmod>
</url>
<url>
<loc>https://phdev.dev//blog/2020-01-19-JavaScript-Promise-Part2</loc>
<lastmod>2020-01-19T21:30:57.000Z</lastmod>
</url>
<url>
<loc>https://phdev.dev//blog/2020-01-24-使用-fetch-來介接-api-吧</loc>
<lastmod>2020-01-24T20:02:57.000Z</lastmod>
</url>
<url>
<loc>https://phdev.dev//blog/2020-06-13-在-vue-cli3-中使用-vue2-google-maps-把玩-google-map</loc>
<lastmod>2020-06-13T13:10:59.000Z</lastmod>
</url>
<url>
<loc>https://phdev.dev//blog/2020-06-20-vue一個簡易驗證碼元件</loc>
<lastmod>2020-06-20T18:41:59.000Z</lastmod>
</url>
<url>
<loc>https://phdev.dev//blog/2020-09-16-拉開序幕，認識-React-好朋友</loc>
<lastmod>2020-09-16T00:05:26.000Z</lastmod>
</url>
<url>
<loc>https://phdev.dev//blog/2020-09-17-建立第一個-React-Code</loc>
<lastmod>2020-09-17T09:14:53.000Z</lastmod>
</url>
<url>
<loc>https://phdev.dev//blog/2020-09-18-什麼是-JSX</loc>
<lastmod>2020-09-18T09:16:21.000Z</lastmod>
</url>
<url>
<loc>https://phdev.dev//blog/2020-09-19-React-Element-與-Component</loc>
<lastmod>2020-09-19T10:36:39.000Z</lastmod>
</url>
<url>
<loc>https://phdev.dev//blog/2020-09-20-在-Class-based-Component-中的-State-與事件處理</loc>
<lastmod>2020-09-20T11:29:43.000Z</lastmod>
</url>
<url>
<loc>https://phdev.dev//blog/2020-09-21-事件處理的使用與了解</loc>
<lastmod>2020-09-21T08:52:25.000Z</lastmod>
</url>
<url>
<loc>https://phdev.dev//blog/2020-09-22-Class-based-Component-的生命週期</loc>
<lastmod>2020-09-22T06:43:06.000Z</lastmod>
</url>
<url>
<loc>https://phdev.dev//blog/2020-09-23-Class-based-Component-生命週期方法-續</loc>
<lastmod>2020-09-23T10:57:45.000Z</lastmod>
</url>
<url>
<loc>https://phdev.dev//blog/2020-09-24-使用-React-developer-Tool-提高開發效率</loc>
<lastmod>2020-09-24T10:16:58.000Z</lastmod>
</url>
<url>
<loc>https://phdev.dev//blog/2020-09-25-條件-Render、列表與-key</loc>
<lastmod>2020-09-25T11:54:58.000Z</lastmod>
</url>
<url>
<loc>https://phdev.dev//blog/2020-09-26 09:12:00-Styled-Component</loc>
<lastmod>2020-09-26T09:12:00.000Z</lastmod>
</url>
<url>
<loc>https://phdev.dev//blog/2020-09-27-CSS-modules</loc>
<lastmod>2020-09-27T10:36:38.000Z</lastmod>
</url>
<url>
<loc>https://phdev.dev//blog/2020-09-28-Higher-order-component-HOC</loc>
<lastmod>2020-09-28T10:41:09.000Z</lastmod>
</url>
<url>
<loc>https://phdev.dev//blog/2020-09-29-createRef-學起來，focus-元素不麻煩</loc>
<lastmod>2020-09-29T10:40:18.000Z</lastmod>
</url>
<url>
<loc>https://phdev.dev//blog/2020-09-30-Context-API</loc>
<lastmod>2020-09-30T10:53:50.000Z</lastmod>
</url>
<url>
<loc>https://phdev.dev//blog/2020-10-01-在-React-中執行非同步請求</loc>
<lastmod>2020-10-01T07:27:23.000Z</lastmod>
</url>
<url>
<loc>https://phdev.dev//blog/2020-10-02-初探-React-Router</loc>
<lastmod>2020-10-02T00:09:55.000Z</lastmod>
</url>
<url>
<loc>https://phdev.dev//blog/2020-10-03-React-router-配置動態參數並取得-api-資料內容</loc>
<lastmod>2020-10-03T00:56:20.000Z</lastmod>
</url>
<url>
<loc>https://phdev.dev//blog/2020-10-04-巢狀路由、-Query-參數與重導向</loc>
<lastmod>2020-10-04T10:09:12.000Z</lastmod>
</url>
<url>
<loc>https://phdev.dev//blog/2020-10-05-透過-React-Router-config-統一管理路由</loc>
<lastmod>2020-10-05T10:19:56.000Z</lastmod>
</url>
<url>
<loc>https://phdev.dev//blog/2020-10-06-React-Router-與-hooks</loc>
<lastmod>2020-10-06T10:07:52.000Z</lastmod>
</url>
<url>
<loc>https://phdev.dev//blog/2020-10-07-Redux-觀念初探</loc>
<lastmod>2020-10-07T10:48:46.000Z</lastmod>
</url>
<url>
<loc>https://phdev.dev//blog/2020-10-08-Redux-同步資料流</loc>
<lastmod>2020-10-08T10:24:24.000Z</lastmod>
</url>
<url>
<loc>https://phdev.dev//blog/2020-10-09-Redux-非同步資料處理-使用-Redux-Thunk</loc>
<lastmod>2020-10-09T10:34:35.000Z</lastmod>
</url>
<url>
<loc>https://phdev.dev//blog/2020-10-10-Redux-非同步資料流-Redux-saga-基本用法</loc>
<lastmod>2020-10-10T10:14:55.000Z</lastmod>
</url>
<url>
<loc>https://phdev.dev//blog/2020-10-11-React-Redux-與-Hooks</loc>
<lastmod>2020-10-11T10:30:15.000Z</lastmod>
</url>
<url>
<loc>https://phdev.dev//blog/2020-10-12-認識-React-Hooks-之一</loc>
<lastmod>2020-10-12T09:10:02.000Z</lastmod>
</url>
<url>
<loc>https://phdev.dev//blog/2020-10-13-認識-React-Hooks-之二</loc>
<lastmod>2020-10-13T09:55:19.000Z</lastmod>
</url>
<url>
<loc>https://phdev.dev//blog/2020-10-14-認識-React-Hooks-之三</loc>
<lastmod>2020-10-14T07:58:35.000Z</lastmod>
</url>
<url>
<loc>https://phdev.dev//blog/2020-10-15-完賽日，心得與階段學習驗收</loc>
<lastmod>2020-10-15T09:51:42.000Z</lastmod>
</url>
<url>
<loc>https://phdev.dev//blog/2020-12-10-透過-CSS-列印-print-設定網頁列印時的樣式</loc>
<lastmod>2020-12-10T18:38:12.000Z</lastmod>
</url>
<url>
<loc>https://phdev.dev//blog/2021-01-31-把玩-HTML-Drag-and-Drop-API</loc>
<lastmod>2021-01-31T15:54:52.000Z</lastmod>
</url>
<url>
<loc>https://phdev.dev//blog/2021-02-27-Free-Cell-新接龍</loc>
<lastmod>2021-02-27T16:37:34.000Z</lastmod>
</url>
<url>
<loc>https://phdev.dev//blog/2021-04-27-整理-Vue2-中在元件裡達到雙向綁定的幾種方式</loc>
<lastmod>2021-04-27T14:05:23.000Z</lastmod>
</url>
<url>
<loc>https://phdev.dev//blog/2021-05-01-把玩-vue-chartjs</loc>
<lastmod>2021-05-01T11:29:39.000Z</lastmod>
</url>
<url>
<loc>https://phdev.dev//blog/2021-05-05-把玩-Leaflet</loc>
<lastmod>2021-05-05T14:25:58.000Z</lastmod>
</url>
<url>
<loc>https://phdev.dev//blog/2021-05-09-把玩-vue-leaflet</loc>
<lastmod>2021-05-09T11:08:05.000Z</lastmod>
</url>
<url>
<loc>https://phdev.dev//blog/2022-06-24-Setting-up-for-TDD</loc>
<lastmod>2022-06-24T18:45:17.000Z</lastmod>
</url>
<url>
<loc>https://phdev.dev//blog/2022-12-10-CSS-新選擇器-has-偽類選擇器</loc>
<lastmod>2022-12-10T22:00:53.000Z</lastmod>
</url>
<url>
<loc>https://phdev.dev//blog/2023-10-01-學習-SQL-系列-什麼是-SQL</loc>
<lastmod>2023-10-01T07:51:04.000Z</lastmod>
</url>
<url>
<loc>https://phdev.dev//blog/2024-03-07-在 Google Cloud VM 上架設你自己的套件管理伺服器(npm library server)</loc>
<lastmod>2024-03-07T13:51:04.000Z</lastmod>
</url>
<url>
<loc>https://phdev.dev//blog/2024-03-20-開發屬於你的第一個 npm 套件</loc>
<lastmod>2024-03-20T09:51:04.000Z</lastmod>
</url>
<url>
<loc>https://phdev.dev//blog/2024-04-18-使用 npm link 快速測試本地 npm 套件</loc>
<lastmod>2024-04-17T09:51:04.000Z</lastmod>
</url>
<url>
<loc>https://phdev.dev//blog/2024-09-10-開發第一個屬於你的 vue 套件</loc>
<lastmod>2024-09-10T09:51:04.000Z</lastmod>
</url>
<url>
<loc>https://phdev.dev//blog/2025-10-21-Zod v4 實戰攻略 - TypeScript-First 表單驗證利器</loc>
<lastmod>2025-10-21T04:51:04.000Z</lastmod>
</url>
</urlset>
