iT邦幫忙

2024 iThome 鐵人賽

DAY 3
0
自我挑戰組

自學vue~點亮Roadmap過程系列 第 3

vue3鍊成術第三天-專案建置補充(vue-cli)

  • 分享至 

  • xImage
  •  

專案建置補充(vue-cli)

今天來介紹昨天專案建置前的選擇內容

https://ithelp.ithome.com.tw/upload/images/20240918/20169210YEVqnBaQVA.png

1. TypeScript:

  • 是 JavaScript 的超集,並添加了靜態型別系統。在 TypeScript 中,你可以在編寫代碼時指定變數的類型,這有助於減少錯誤並提高代碼的可維護性。
  • 需要編譯器將 TypeScript 代碼轉換成 JavaScript,因為瀏覽器和 Node.js 只能理解 JavaScript。這個轉換是通過 tsc(TypeScript 編譯器)完成的。
  • 在編譯時進行靜態檢查,這可以在運行代碼之前捕獲潛在的錯誤,特別是在大型項目中這一點很有用。
  • 擴展了 JavaScript 的 OOP 功能,支持類別、介面、抽象類別和類型別名等,讓開發者更容易寫出有組織、易於維護的代碼。
  • 被大規模項目和開源項目廣泛採用,如 Angular、React、Vue 等。它的靜態型別系統特別適合於大型應用程式,因為它有助於防止錯誤並提高代碼的可讀性和可維護性。
  • 需要額外的工具配置(如編譯器),但其強大的型別檢查和編譯器功能對於現代開發工具(如 VS Code)提供了很好的自動補全和錯誤檢查功能。

總結:
適合大型應用,尤其是需要長期維護、團隊合作或複雜度較高的項目。TypeScript 的靜態類型檢查幫助減少運行時錯誤,提高開發效率。

2. JSX:

JSX(JavaScript XML)是 JavaScript 語法擴展,通常與 React 框架一起使用,用來描述 UI 結構。它允許在 JavaScript 中編寫像 XML 或 HTML 一樣的標籤語法。JSX 最常用於 React 應用程式中來創建和更新 UI 元素。

總結:
JSX 是一種非常方便的語法,尤其是在使用 React 框架時,能夠讓開發者將 UI 結構直接嵌入到 JavaScript 代碼中。在 JavaScript 和 TypeScript 中,透過轉譯工具可以輕鬆支持 JSX 語法,但 TypeScript 還能提供額外的類型檢查功能,使 JSX 的開發更加安全和高效。

3. Vue Router:

Vue Router 是 Vue.js 的官方路由管理器,專門用來在 Vue 應用中實現單頁應用(SPA, Single Page Application)的路由功能。它允許開發者定義應用中的路徑(URL)和組件之間的關聯,讓不同的 URL 對應到不同的視圖,而不需要整個頁面刷新。

Vue Router 的核心概念

  • 路由定義(Route Definition) 每個路由都代表著應用中的一個頁面或視圖。你可以將 URL 路徑與特定的 Vue 組件綁定起來。
  • 動態路由(Dynamic Route) Vue Router 支持動態路徑參數,這讓你可以根據 URL 中的參數動態加載組件。
  • 嵌套路由(Nested Route) 支持路由嵌套,這樣可以實現複雜的多層視圖結構。
  • 導航守衛(Navigation Guards) Vue Router 提供導航守衛,可以在進入或離開某個路由時進行驗證或執行特定操作。
  • 編程式導航(Programmatic Navigation) 除了透過 進行導航,還可以使用 JavaScript 程式碼編程方式進行導航。

總結:
Vue Router 是一個功能強大且靈活的路由解決方案,適合單頁應用開發。它支持靜態路由、動態路由、嵌套路由等功能,並且能夠通過導航守衛實現權限控制與導航邏輯。無論是簡單還是複雜的應用,Vue Router 都能提供靈活的解決方案來管理頁面導航。

4. Pinia:

Pinia 是 Vue.js 的下一代狀態管理庫,是 Vuex 的替代品。Pinia 提供更簡潔和直觀的 API,解決了 Vuex 的一些使用問題,例如冗長的代碼和複雜的模組配置。它與 Vue 3 深度集成,支持 Composition API 和 TypeScript。

Pinia 的主要特點:

  • 簡單易用的 API:相比 Vuex,Pinia 的 API 更簡潔,不再需要大量的樣板代碼。
  • 全局狀態管理:Pinia 可以像 Vuex 一樣管理全局的應用狀態,讓組件之間共享數據。
  • 支援 TypeScript:Pinia 提供了開箱即用的 TypeScript 支持,無需額外配置。
  • 熱更新支持:當你修改 store 時,Pinia 支持熱更新,無需刷新頁面即可應用新的狀態。

Pinia 的其他功能

  1. 插件支持
    Pinia 支持插件,可以擴展它的功能。例如,你可以創建一個插件來實現本地存儲同步、日誌記錄等。
  2. SSR 支持
    Pinia 也支持服務端渲染(SSR),適合服務端渲染的應用開發。
  3. 熱更新
    當你在開發過程中修改了 store 的代碼,Pinia 支持自動熱更新狀態,無需手動刷新頁面。

結論:
Pinia 是一個簡單且高效的狀態管理庫,它具有更直觀的 API 並且完美支持 Vue 3 的 Composition API 和 TypeScript。它作為 Vuex 的替代品,解決了 Vuex 使用中的一些不便,使得狀態管理更輕量和靈活。在現代 Vue 應用中,Pinia 是一個非常好的選擇。

5. vitest

Vitest 是一個為 Vue 和 Vite 應用量身打造的快速單元測試框架,與 Vite 深度集成,並且可以用來測試 JavaScript/TypeScript 代碼。Vitest 提供了類似 Jest 的 API,讓開發者能夠快速上手,同時利用 Vite 的高速構建和原生的 ES 模塊支持來實現極快的測試速度。

Vitest 的特點

  • 極快的測試速度:利用 Vite 的高速編譯和模塊熱替換(HMR),使得測試運行非常快速。
  • Vue 3 和 Vite 支持:Vitest 與 Vue 3 和 Vite 深度集成,無需額外配置。
  • Jest 相容 API:大多數情況下,可以直接將 Jest 的代碼轉換為 Vitest,極易遷移。
  • 內建 TypeScript 支持:Vitest 天生支持 TypeScript,無需額外的配置。
  • 瀏覽器和 Node.js 測試支持:可以在不同環境下測試代碼,包括瀏覽器和 Node.js。

結論:
Vitest 是一個非常適合 Vue 和 Vite 應用的測試框架。它速度快、簡單易用,並且提供了強大的 API,與 Jest 的兼容性讓它在遷移和開發新項目時都變得更加方便。對於 Vue 開發者來說,Vitest 是一個理想的測試工具。

6. End to End(端對端)測試工具

End-to-End (E2E) 測試工具用於自動化測試整個應用的用戶行為,模擬實際操作情境,從而驗證應用的各個部分是否能夠正常協同運作。這類測試工具通常模擬使用者與應用的交互,來檢查網頁應用的功能、界面和數據流是否正確。

常見的測試工具:

  • Cypress:適合想快速上手且只需單瀏覽器測試的用戶。
  • Playwright:功能強大,適合多瀏覽器測試需求。
  • Puppeteer:專注於 Chrome 瀏覽器的自動化測試和操作。
  • TestCafe:簡單易用,支持所有現代瀏覽器。
  • Nightwatch.js:基於 WebDriver 的多瀏覽器測試工具,適合需要 Selenium 支持的項目。

7. ESLint

ESLint 是一個靜態代碼分析工具,專門用來識別 JavaScript(和 TypeScript)中的問題。它幫助開發者保持一致的代碼風格,並能檢查潛在的錯誤,從而提高代碼質量。ESLint 具備高度的可配置性,可以自定義規則或使用社區共享的預設規則。

ESLint 的功能與特點:

  • 語法檢查:找出常見的語法錯誤。
  • 代碼風格檢查:確保團隊的代碼風格一致性,例如縮進、引號的使用。
  • 自定義規則:開發者可以根據需求自定義 ESLint 規則,並且可以打開或關閉某些檢查。
  • 插件支持:支持通過插件擴展功能,如對 Vue、React 等框架的專用檢查。
  • 自動修復:ESLint 能自動修復部分簡單的代碼風格問題。

常用插件
eslint-plugin-vue:專門針對 Vue.js 應用的插件。
eslint-plugin-react:專門針對 React 應用的插件。
eslint-plugin-import:檢查 ES6 模塊的 import/export。
eslint-plugin-node:針對 Node.js 的代碼檢查。
eslint-plugin-jsx-a11y:針對 JSX 中的無障礙檢查。

總結
ESLint 是一款靜態代碼分析工具,可以自動檢查代碼錯誤和不一致的風格。
通過插件,ESLint 可以適應不同的框架和環境,如 Vue、React。
它支持自動修復部分錯誤,並且能與代碼格式化工具 Prettier 結合使用,從而提升代碼質量與開發體驗。

8. Vue DevTools 7

Vue Devtools 7 是 Vue.js 官方提供的開發工具,專門用於調試 Vue.js 應用。最新的 Vue Devtools 7 版支持 Vue 3 並提升了性能和開發體驗。這個工具可以幫助開發者更有效地檢查、調試和優化 Vue 應用。

Vue Devtools 的主要功能:

元件樹視圖:

  • 可以可視化 Vue 應用中的元件樹,方便查看父子元件之間的關係。
  • 支持 Vue 3 的 Composition API 和 Vue 2 的 Options API。

檢查和修改元件的數據:
可以直接在 Vue Devtools 中檢查元件的 data、props、computed 和 state,並且可以即時修改這些數據來查看應用反應。

事件監視:
*可以查看應用中發生的事件(包括 emit 和自定義事件)以及它們的參數,這對於調試元件之間的通訊非常有用。

Vue Router 集成:
*Vue Devtools 能與 Vue Router 集成,讓你檢查當前路由的狀態、路徑參數等,並且可以模擬路由跳轉。

Vuex 集成(Pinia 亦可支持):
*支持 Vuex 狀態管理工具,讓你檢查、修改應用的全局狀態,還有 time-travel 調試(即狀態變更回放)。

性能分析:
*Vue Devtools 7 提供了性能分析工具,可以幫助你識別應用中的性能瓶頸,分析元件的渲染性能,優化應用速度。

總結:
Vue Devtools 7 是一款強大的 Vue.js 調試工具,對於開發 Vue 2 和 Vue 3 的應用都非常實用。它提供了對元件樹、狀態、事件和性能的可視化調試,能顯著提升開發效率。通過 Devtools,開發者能更輕鬆地識別問題、優化應用並確保高質量的代碼。


上一篇
vue3鍊成術第二天-專案建置(vue-cli)
下一篇
vue3鍊成術第四天-專案建置(Vite)
系列文
自學vue~點亮Roadmap過程30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言