Sep. 2022
15 th
套件
按照需求自動引入 API。
For Vite, Webpack, Rollup and esbuild.
⋯ Presets
⋯ Reference和
unplugin-vue-components
搭配可以做到使用 icon 時自動引入,並增加 prefix 選項。按照需求自動引入 Vue components。
可用來搭配unplugin-icons
使用。
函式庫
手刻簡易版幻燈片
- 將圖片使用
flex
排成一橫排,容器只留下一張圖片的大小,利用overflow: hidden;
隱藏其他非當前圖片,再利用transform
去移動x
位置切換當前顯示圖片(transition
可加上過度動畫) - 容器
padding-top
的百分比是參照容器的width
利用
padding-top
按照長寬比撐出圖片的大小並設為relative
,再放入div
設為absolute
去撐滿父容器的空間以放置圖片。 setInterval
要記得在onBeforeUnmount
清除若沒有在元件移除前將
setInterval
清除的話,當元件移除後setInterval
仍會繼續運作,而找不到元件時便會產生錯誤。
範例圖片來源:https://www.sanriogiftgate.com.tw/
16 th
Vitepress
現代 SSG (Static Site Generation) 框架。
基於 Vite、Vue3 的靜態網站產生器。
配置
- App Configs
配置網站的基本功能,例如:設置網站的標題、客製化 markdown 解析器的工作方式。
- Theme Configs
配置網站的主題,例如:添加側邊欄、添加「在 GitHub 上編輯此頁面」的連結等功能。
17 th
套件
- day.js
用來解析、驗證、操作和顯示現代瀏覽器的日期和時間,具有很大程度上與
Moment.js
兼容的 API。
資源
19 th
問題
- Vitepress 在 Build 時出現錯誤
使用到
setInterval
時要用if(typeof window !== "undefiend")
或onMounted
。 - 幻燈片在 Firefox 上面會使 Flex 的效果會將所有幻燈片圖片壓縮在容器內
將所有圖片加上
flex-shrink: 0;
強制讓它不要被壓縮。
20 th
前端框架
- solid.js
- 直接使用瀏覽器的 DOM,没有虛擬 DOM。
- 提前編譯,依需求打包(Solid 須預編譯,將 jsx 部分程式碼轉換成原生語法)。
- 響應式原理,精準更新對應的值。
GUI 框架
- Tauri
Tauri 的後端核心使用 Rust 構建。
使用 Node.js 上的 CLI 使 Tauri 成為一種真正的多語言方法來創建和維護出色的應用程序。
可以創建體積更小、運行更快、更加安全的跨平台桌面應用 。 - Electron
使用 JavaScript、HTML 和 CSS 構建桌面應用程式的框架。
嵌入 Chromium 和 Node.js 到 Electron 允許維護 JavaScript 程式庫。
可創建在 Windows、macOS 和 Linux 上運行的跨平台應用程式(不需要本地開發經驗)。
22 nd
CSS
rem
不會隨著視窗大小有所變化,%
才會- 寬高可以使用
calc(100% - ?rem)
去做計算 - 寬高有剩餘的空間時
margin: auto;
就會有作用高度需要是
position: absolute;
的情況下才有效。
工具
- Lerna
JS package 管理工具、使用 monorepo 的概念。
針對使用 git 和 npm 管理多軟體包程式碼倉庫的工作流程進行優化。- 自動解決 packages 之間的依賴關係
- 透過 git 檢測文件更動、自動發布
- 根據 git commit 紀錄,自動生成 CHANGELOG
23 rd
工具
- Amplication
助於開發高品質的 Node.js applications,不需花費時間在重複的 coding tasks。
定義數據模型、角色和權限,Amplication 將生成一個 TypeScript Node.js applications。
資源
- FreeCodeCamp
開源程式碼和免費課程。
26 th
函式庫
- Validator.js
此函式庫僅驗證和清理 Strings。
CSS
- CSS Media
max-width
:表示這個數字以下(包含)的都適用。(<=
)min-width
:表示這個數字以上(包含)的都適用。(>=
)
29 th
CSS
absolute
垂直水平置中CSS.content { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); }
translate(-50%, -50%)
:讓物件的 X、Y 軸移動-50%
(物件本身的寬度是 100%)。
大概意思是將物件的對齊點改到物件的正中間。