Skip to content

YeyeLeaf/NCKU_BikeFestival16th_Website

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

56 Commits
 
 
 
 

Repository files navigation

NCKU_BikeFestival16th_Website

以下為第 16 屆成大單車節官方網站的開發技術文件。

由於有大量的組件會被重複使用,因此我們主要會使用 Vue 來開發前端,並且會搭配使用 TailwindCSS 來節省重新手刻 CSS 所花費的時間。

step1. 先下載編輯器

安裝 vscode

step2. 建立開發環境

安裝 node.js

Goal : 在終端機輸入 node --verison 之後,若終端機回覆目前的版本代表安裝成功🎊

step3. 進行版本控制

安裝 git

  1. 安裝教學影片
  2. GDSC - Git 基礎教學

Goal : 建立一個檔案並在終端機輸入 git init 進行追蹤,若終端機回覆 Initialized empty Git repository in ... 代表安裝成功🎊

step4. 抓取目前的專案進度

如何抓取目前的專案進度?

  1. 與其它開發者的互動 - 使用 Pull Request(PR) 看完這篇後必須確保自己已經了解 fork、git clone ...git add .git commit -m "修改內容"git push、PR 這六個名詞或指令的意義。

Goal : 將這份單車節的前端專案 fork 回自己的 Github ( 沒有的話先創帳號 ) 內,並且在你的 vscode 內輸入 git clone ... 以後,若此專案出現在你的 vscode 內,代表成功抓取目前的專案進度🎊

step5_1. 詳閱 Vue3.0 的基本規則

Vue 3.0 有哪些基本規則?

  1. Vue3.0 官方文件
  2. 重新認識 Vue.js - Kuro Hsu 講的很詳細,可以當作工具書。
  3. 前端黑洞計畫 (一) : 讓 Vite 來開啟你的 Vue | IT 邦 Day1-11 主要在講 Vite 是如何配置我們專案的資料夾,Day12-30 則是在講 Vue 語法的細節。
  4. 真的好想離開 Vue 3 新手村 feat. CompositionAPI | IT 邦 Day1-6 主要在講 Vite 資料夾配置以及編譯與打包的原理 ( Day3 很接近我們專案的資料夾結構 ),Day7-30 則是在講 Vue 的語法細節 ( Day15 可略 )。
  5. 實作 : 【必看】Vue3 + Vite 快速上手 Get Startrd | ▶️Youtube 這系列的教學影片可以快速幫大家「收斂」所學,裡面共 9 部影片,第 5, 6, 7, 9 部我們專案用不到可略 ( 建議切兩倍速然後邊看邊實做 )。
  6. 實作 : Vue Playground 裡面很多寶藏,不多說了。

In brief : 1 個分頁會有 n 個元件,例如按鈕元件、導覽列元件...,然後每 1 個元件都會各自寫成 1 個 vue 檔。 我們單車節官網會有 n 個分頁,每 1 個分頁會是 1 個 vue 檔,裡面會引入各自需要使用到的元件。 最後把這 n 個分頁全部一起放進 app.vue 這一個主核心檔案裡面,這個檔案就會包含我們單車節網站的所有結構了。

Goal : 當你認為自己從「不瞭解 Vue」,進階到「可以看得懂我們專案的資料夾配置」,即代表 step5_1 階段性完成🎊

step5_2. 詳閱 TailwindCSS 的基本規則

如何使用 TailwindCSS ( CSS 框架 ) 進行排版與美化樣式?

  1. TailwindCSS 官方文件
  2. 你聽過尾巴風嗎 ? CSS 框架 Tailwind 的新手入門指南 | IT 邦 可以先看 Day24~28 實作部分達到快速上手的效果。
  3. 排版神器 Tailwind CSS~和兔兔一起快速上手漂亮的元件開發!| IT 邦 講的非常白話且新手友善,有幾篇甚至入選達標好文。

In brief : 以往撰寫 CSS 如下...

<p class="styleName">Hello</p> 

.styleName {
  color: blue
}

使用 TailwindCSS 撰寫後會變成...

<p class="text-blue-600">Hello</p>

前後兩者的網頁呈現效果相同,而後者直接將樣式寫在 class 內,除了可以省略命名上的麻煩,也可以大幅減少程式碼的篇幅。

Goal : 當你可以針對我們 Vue 的初始專案,將裡面的檔案從 <style scoped>...</style> 裡面所寫的樣式使用 TailwindCSS 來取代之,即代表 step5_2 階段性完成🎊 ( p.s. 不要背指令,直接用 TailwindCSS 官方網站的 Quick Search 功能查詢 )

step6 挑選你想要進行開發的網頁元件

參考這個設計部給出的樣式進行開發,並且將以下的元件獨立開發後再放進 step4 給予大家前端專案裡的 "./src/components" 資料夾即可。( 1 元件 = 1 vue )

一、所有頁面共用 :

  1. 頁首導覽列元件 ( html: navigation bar )
  2. 頁尾元件 ( html: </footer> )
  3. 不規則形按鈕 + 圓角按鈕元件 ( html: </button> )

二、報名頁面 :

  1. 報名表單元件 ( html: </form> )

三、專案介紹頁面 :

  1. 成大單車節幻燈片 + 單車節緣起幻燈片 + 籌備團隊幻燈片元件 ( html: slideshow / carousel slider )
  2. 四大主題活動元件 ( html: </div> )

四、活動資訊頁面 :

  1. 展場地圖、交通資訊、時間表元件 ( html: </li> )

五、活動介紹頁面 :

  1. podcast 播放器元件 ( html: </audio> )

Goal : 依照上述的「標題」選擇你想要開發的,將你的名字 or 綽號寫在該標題的後面 ( "Ctrl + Alt + B" 開啟編輯模式 ),並且注意開發的截止時間為 1/27 (五) 23 : 59

  • 一 : 1 人 - YeyeLeaf
  • 二、三 : 1 人 - Wayne
  • 四、五 : 1 人 - Kirin

Vue 前端開發注意事項

  1. 先 delete 專案裡用不到的模板檔案,例如 "/HelloWorld.vue"

  2. "./src/assets/xxx.css" 裡面的 2 個 CSS 檔案內容都先 Ctrl + / 註解掉,因為他會卡你 CSS 的樣式權重。 ( 也就是說網頁會優先顯示他的 CSS,而不顯示你的 )

  3. 想要在瀏覽器上預覽你的開發結果,首次預覽先在 vscode 的終端機內輸入 npm install,之後預覽就只要輸入 npm run dev 即可。 ( 並不是開啟 live server )

  4. 確保你使用的是 Composition API 進行開發,而不是 Option API。 ( 為了保持程式碼風格一致,以便後續維護 )

  5. 查資料的過程中,先確保自己閱讀的是 Vue3.0 以上的內容而不是 Vue2.0。 ( 版本有大改所以兩者語法有一點不同 )

  6. 可以在 vscode 裡面安裝以下插件方便你日後的開發

    • Vue Language Features (Volar)
    • Tailwind CSS IntelliSense
    • Git Graph
    • ...
  7. ...


問題與討論

有遇到卡住的地方可以在這裡的問題與討論區留言,或者是 google 找答案,也可以直接截圖私訊我 discord,或是直接把問題貼在 chatGPT 詢問最快。

Q1. 輸入 npm run dev 時出現以下報錯 : npm ERR! ENOENT: no such file or directory, open "...\package.json"

A1. 在終端機內輸入以下 4 個指令即可 : npm cache clean --forcenpm rm -rf node_modulesrm package-lock.jsonnpm install

Q2. ...


【補充】前端好用工具

讓你可以在日常生活中隨意點擊某個網頁元件,就可以獲取該元件的 CSS 組成結構。

讓你可以在網頁中添加喜歡的 icon SVG 向量圖檔,無論放大或縮小都不會導致失真。

你可以將這個網站當成工具書,裡面收錄了大部分的 html, css, js 語法並且附帶解釋,如果語法不熟可以在這裡複習。

4. ...

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Vue 97.4%
  • JavaScript 2.2%
  • Other 0.4%