Vue 應用開發(全攻略)

更新 發佈閱讀 10 分鐘

在這篇文章中,我們將討論如何在 Vue 應用中使用路由、GitHub Pages 部署以及狀態管理工具 Pinia。這些概念在開發上通常會使用到,讓我們一步一步深入這些重要的概念!


1. 使用 Vue Router 跳轉頁面

在 Vue 應用中,使用 this.$router.push() 方法可以方便地實現頁面跳轉。這是一個簡單而有效的方法。

範例程式

// 使用 Vue Router 跳轉到 /result 頁面
this.$router.push('/result');

這樣就能夠將用戶導向 result 頁面,讓導航變得無比快速。

2. 獲取當前頁面名稱

若你想獲取當前頁面的名稱,可以使用 $route.name。這對於條件渲染或邏輯判斷非常有用喔。

範例程式

// 獲取當前頁面的名稱
const currentPageName = this.$route.name;
console.log(`當前頁面名稱是: ${currentPageName}`);

這樣可以方便地在控制臺查看當前頁面的名稱。

3. 靜態網站的 Vue 部署

當你完成了 Vue 應用的開發,接下來就是部署了。我們將使用 Vite 來部署靜態網站。

設置 Vite 配置

在你的 Vite 配置文件中(例如 vite.config.js),你需要指定 base 路徑,以確保靜態資源能夠正確載入。

import { fileURLToPath, URL } from 'node:url';
import { defineConfig } from 'vite';
import vue from '@vitejs/plugin-vue';

// Vite 配置
export default defineConfig({
base: '/vue-build/', // 設置基本路徑
plugins: [
vue(),
],
resolve: {
alias: {
'@': fileURLToPath(new URL('./src', import.meta.url)),
},
},
});

這裡的 base 設置讓你在 GitHub Pages 部署時能夠正確解析靜態資源。

GitHub Actions 自動化部署


  • github切換為Github Actions
  • 選擇Static HTML的Configure按鈕
  • 替換程式碼
  • commit之後即可


code替換

vite替換code網址 https://vitejs.dev/guide/static-deploy


使用 GitHub Actions,可以輕鬆地自動部署你的靜態網站。以下是需要替換的程式,應該以官方網站的為主。

name: Deploy static content to Pages

on:
push:
branches: ['main'] # 監聽 main 分支的推送
workflow_dispatch: # 手動觸發工作流

permissions:
contents: read
pages: write
id-token: write

concurrency:
group: 'pages'
cancel-in-progress: true

jobs:
deploy:
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Node
uses: actions/setup-node@v4
with:
node-version: 20
cache: 'npm'
- name: Install dependencies
run: npm ci
- name: Build project
run: npm run build
- name: Setup Pages
uses: actions/configure-pages@v4
- name: Upload artifact
uses: actions/upload-pages-artifact@v3
with:
path: './dist' # 指定構建輸出目錄
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4

這樣的配置可以幫助你在推送到 main 分支時自動部署最新的程式。

4. 使用 Pinia 進行狀態管理

Pinia 是 Vue 3 的一個輕量級狀態管理工具,非常適合用於中大型應用的狀態管理。

定義 Pinia Store

首先,我們來定義一個購物車的 store:

import { defineStore } from 'pinia';

export const useShoppingCartStore = defineStore('shopping-cart', {
state: () => ({
cartData: {
products: [
{ id: '0877', name: '紅茶', price: 300, count: 1 },
{ id: '0878', name: '綠茶', price: 400, count: 1 },
{ id: '0879', name: '花茶', price: 500, count: 1 },
],
userData: {
name: '',
phone: '',
email: '',
city: '',
postalCode: '',
address: '',
},
},
}),
getters: {
totalPrice() {
// 計算總價格
return this.cartData.products.reduce((acc, item) => acc + item.price * item.count, 0);
},
},
actions: {
addCart(item) {
this.cartData.products.push(item); // 將商品加入購物車
},
reset() {
this.$reset(); // 重置購物車
},
},
});

在這個範例中,我們創建了一個購物車的 store,包含了商品資料和用戶資料,並且實現了計算總價和添加商品的功能。

在組件中使用 Pinia

現在讓我們看看如何在組件中使用這個 store:

import { RouterLink } from 'vue-router';
import { useShoppingCartStore } from '@/stores/shopping-cart.js';

export default {
setup() {
const shoppingCartStore = useShoppingCartStore(); // 使用購物車 store
return { shoppingCartStore };
},
methods: {
setData() {
this.$router.push('/step-2'); // 跳轉到步驟二
},
},
};

在這裡,我們通過 useShoppingCartStore 方法來訪問購物車的狀態,並能夠使用其方法和屬性來進行操作。

結論

在這篇文章中,我們涵蓋了 Vue 應用中的幾個重要主題,包括路由管理、靜態網站部署和狀態管理。這些知識對於開發和部署現代化的 Web 應用至關重要。希望這篇文章能對你的開發過程有所幫助!


對於這類的撰寫方式習慣嗎?歡迎多多進行良性的知識交流喔!目前是在學習階段,大家有不同看法的話歡迎進行良性的知識交流!

 

提醒,文章僅供正當的知識參考,文章不負任何責任。

留言
avatar-img
阿棋的沙龍
3會員
34內容數
有軟體開發相關文章。
阿棋的沙龍的其他內容
2024/12/06
在這篇文章中,我們將深入探討如何在 Vue 中使用組件,特別是如何透過事件傳遞數據、動態載入圖片,以及使用本地儲存功能。這些可能稍微複雜一點,讓我們一步一步來。
Thumbnail
2024/12/06
在這篇文章中,我們將深入探討如何在 Vue 中使用組件,特別是如何透過事件傳遞數據、動態載入圖片,以及使用本地儲存功能。這些可能稍微複雜一點,讓我們一步一步來。
Thumbnail
2024/12/05
在這篇文章中,我們將介紹如何快速建置一個 Vue 專案,並涵蓋一些基本的檔案結構和組件使用的方式。希望能幫助你順利開始 Vue 的開發之旅!
Thumbnail
2024/12/05
在這篇文章中,我們將介紹如何快速建置一個 Vue 專案,並涵蓋一些基本的檔案結構和組件使用的方式。希望能幫助你順利開始 Vue 的開發之旅!
Thumbnail
2024/12/04
在前端開發的世界中,有許多工具和技術能幫助我們有效地建立、維護和優化應用。本文將探討如何下載Node.js、使用CDN獲取套件、使用npm下載和管理套件、以及打包與tree-shaking的概念,這部分是前端很常會使用到的喔。 下載Node.js Node.js是前端開發中不可或缺的工具,它
Thumbnail
2024/12/04
在前端開發的世界中,有許多工具和技術能幫助我們有效地建立、維護和優化應用。本文將探討如何下載Node.js、使用CDN獲取套件、使用npm下載和管理套件、以及打包與tree-shaking的概念,這部分是前端很常會使用到的喔。 下載Node.js Node.js是前端開發中不可或缺的工具,它
Thumbnail
看更多
你可能也想看
Thumbnail
這是一場修復文化與重建精神的儀式,觀眾不需要完全看懂《遊林驚夢:巧遇Hagay》,但你能感受心與土地團聚的渴望,也不急著在此處釐清或定義什麼,但你的在場感受,就是一條線索,關於如何找著自己的路徑、自己的聲音。
Thumbnail
這是一場修復文化與重建精神的儀式,觀眾不需要完全看懂《遊林驚夢:巧遇Hagay》,但你能感受心與土地團聚的渴望,也不急著在此處釐清或定義什麼,但你的在場感受,就是一條線索,關於如何找著自己的路徑、自己的聲音。
Thumbnail
《轉轉生》(Re:INCARNATION)為奈及利亞編舞家庫德斯.奧尼奎庫與 Q 舞團創作的當代舞蹈作品,結合拉各斯街頭節奏、Afrobeat/Afrobeats、以及約魯巴宇宙觀的非線性時間,建構出關於輪迴的「誕生—死亡—重生」儀式結構。本文將從約魯巴哲學概念出發,解析其去殖民的身體政治。
Thumbnail
《轉轉生》(Re:INCARNATION)為奈及利亞編舞家庫德斯.奧尼奎庫與 Q 舞團創作的當代舞蹈作品,結合拉各斯街頭節奏、Afrobeat/Afrobeats、以及約魯巴宇宙觀的非線性時間,建構出關於輪迴的「誕生—死亡—重生」儀式結構。本文將從約魯巴哲學概念出發,解析其去殖民的身體政治。
Thumbnail
本文分析導演巴里・柯斯基(Barrie Kosky)如何運用極簡的舞臺配置,將布萊希特(Bertolt Brecht)的「疏離效果」轉化為視覺奇觀與黑色幽默,探討《三便士歌劇》在當代劇場中的新詮釋,並藉由舞臺、燈光、服裝、音樂等多方面,分析該作如何在保留批判核心的同時,觸及觀眾的觀看位置與人性幽微。
Thumbnail
本文分析導演巴里・柯斯基(Barrie Kosky)如何運用極簡的舞臺配置,將布萊希特(Bertolt Brecht)的「疏離效果」轉化為視覺奇觀與黑色幽默,探討《三便士歌劇》在當代劇場中的新詮釋,並藉由舞臺、燈光、服裝、音樂等多方面,分析該作如何在保留批判核心的同時,觸及觀眾的觀看位置與人性幽微。
Thumbnail
背景:從冷門配角到市場主線,算力與電力被重新定價   小P從2008進入股市,每一個時期的投資亮點都不同,記得2009蘋果手機剛上市,當時蘋果只要在媒體上提到哪一間供應鏈,隔天股價就有驚人的表現,當時光學鏡頭非常熱門,因為手機第一次搭上鏡頭可以拍照,也造就傳統相機廠的殞落,如今手機已經全面普及,題
Thumbnail
背景:從冷門配角到市場主線,算力與電力被重新定價   小P從2008進入股市,每一個時期的投資亮點都不同,記得2009蘋果手機剛上市,當時蘋果只要在媒體上提到哪一間供應鏈,隔天股價就有驚人的表現,當時光學鏡頭非常熱門,因為手機第一次搭上鏡頭可以拍照,也造就傳統相機廠的殞落,如今手機已經全面普及,題
Thumbnail
Vue 筆記,Nuxt 簡介
Thumbnail
Vue 筆記,Nuxt 簡介
Thumbnail
Vue3 學習筆記,用 Pinia 管理資料與邏輯
Thumbnail
Vue3 學習筆記,用 Pinia 管理資料與邏輯
Thumbnail
Vue3 筆記,指令進階篇
Thumbnail
Vue3 筆記,指令進階篇
Thumbnail
Vue3 學習筆記,vue-router 篇。
Thumbnail
Vue3 學習筆記,vue-router 篇。
Thumbnail
Vue Router 動態路由,假設有一個賣場,裡面有 100 個商品,我們不可能針對它們創 100 對應的路由,因此我們需要一個動態路由,利用"路徑帶參數"的方式來撈取商品的資訊。
Thumbnail
Vue Router 動態路由,假設有一個賣場,裡面有 100 個商品,我們不可能針對它們創 100 對應的路由,因此我們需要一個動態路由,利用"路徑帶參數"的方式來撈取商品的資訊。
Thumbnail
Vue3 學習筆記,專案建立與基礎響應式篇
Thumbnail
Vue3 學習筆記,專案建立與基礎響應式篇
Thumbnail
Basic config 最基本的寫法就是在 src/router/index.ts 的 routes 內設定像這樣 path 是設定路由,name 如果你沒有要用路由傳參,不寫也沒關係,component 是對應到哪個你寫的 vue 頁面 router-link 跟 <a></a> 很像,用法是像
Thumbnail
Basic config 最基本的寫法就是在 src/router/index.ts 的 routes 內設定像這樣 path 是設定路由,name 如果你沒有要用路由傳參,不寫也沒關係,component 是對應到哪個你寫的 vue 頁面 router-link 跟 <a></a> 很像,用法是像
Thumbnail
在這篇文章中,我們將討論如何在 Vue 應用中使用路由、GitHub Pages 部署以及狀態管理工具 Pinia。這些概念在開發上通常會使用到,讓我們一步一步深入這些重要的概念!
Thumbnail
在這篇文章中,我們將討論如何在 Vue 應用中使用路由、GitHub Pages 部署以及狀態管理工具 Pinia。這些概念在開發上通常會使用到,讓我們一步一步深入這些重要的概念!
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News