## Develop on Vue CLI ##### Steve Jian --- ## Vue CLI? ---- Vue CLI 是一个基於 Vue 進行快速開發的完整系统 可以幫創建好許多本來要自己弄的資料夾、檔案 ---- 上次社課的 Vue 操作是在文字編輯器上編寫並在瀏覽器上執行 Vue CLI 使前端在 NodeJS 環境上開發增加開發的方便 --- ## Instll Vue CLI install: ```bash= $ sudo npm install -g @vue/cli ``` check: ```bash= $ vue --version ``` --- ## Vue CLI 創建專案 可用指令的方式創立專案 或以 Vue CLI 圖形工具創立 ---- 啟動圖形工具: ```bash= #移至暫存區 $ cd /tmp #在暫存區啟動Vue CLI圖形工具 $ vue ui ``` ---- ![](https://i.imgur.com/DrkcQNB.png) ---- ![](https://i.imgur.com/1YSl3Vb.png) ---- 在 /tmp 創立專案 ![](https://i.imgur.com/ozSNFsT.png) ---- 依照需求設定 ![](https://i.imgur.com/pJ0ONAo.png =x500) ---- ![](https://i.imgur.com/ZbqzUCf.png =x500) ---- ![](https://i.imgur.com/k22rypT.png =x500) ---- * Bable: 可將ES6中較新的語法轉為大部分Browser 支援的ES5 * PWA: 使專案支援Progressive Web App (漸進式網路應用程式) * Router Vue的路由管理工具 ---- * Vuex 管理Vue項目的全局狀態 * Lint/Formatter 使用ESlint檢查語法和 以Prettier格式化code ---- ![](https://i.imgur.com/qBC9a8i.png =x500) ---- 新增專案,不保存預設 ![](https://i.imgur.com/TSObv3b.png =x500) ---- 專案產生後可以到專案的 Dashboard ![](https://i.imgur.com/XF6vEOy.png) ---- 用 VS code 打開 /tmp/first-vue ![](https://i.imgur.com/27ju17U.png) --- ## 專案內檔案及目錄結構 ---- ![](https://i.imgur.com/xJC50Ze.png =x600) ---- * public 任何放置在public文件夾的靜態資源都會被簡單的複製,而不是通過webpack。需要通過絕對路徑來引用它們 * src 專案的原始碼都放在這裡 * babel.config.js babel的設定檔 (Vue CLI已經設定好了通常不建議亂動) ---- * vue.config.js Vue的設定檔 可以參考[這裡](https://cli.vuejs.org/zh/config/#vue-config-js)設定 * dist 經webpack打包產生的輸出資料夾 (執行npm run build才會產生) * src/assets 放會被編譯的靜態檔案 ---- * src/components 網頁元件的最小單位都放在這裡 * src/router/index.js vue-router設定檔 設定專案的路由 * src/store/index.js vuex設定檔 設定及管理專案全局狀態樹 ---- * src/views 各頁面的原碼 頁面使用到的components在這裡組裝 * src/App.vue 所有頁面都是在App.vue下進行切換的。也是整個專案的關鍵,負責構建定義及頁面元件歸集 * src/main.js 程式入口檔案,初始化vue實例並使用需要的外掛,載入各種公共元件 ---- ![](https://i.imgur.com/2zWn4hQ.png) --- ## .vue檔 .vue檔是vue CLI編寫元件或頁面使用的副檔名 ---- 主要由```<template>```、```<script>```、```<style>``` 三個tag組成 ![](https://i.imgur.com/qFVOtaE.png) ---- * ```<template>``` 頁面或元件的html模板 該標籤內使用html5語法 * ```<script>``` 頁面或元件的控制區 該標籤內使用js語法 * ```<style>``` 頁面或元件的html模板樣式 該標籤內使用CSS語法 --- @/src/view/Home.vue ![](https://i.imgur.com/AWAGR08.png) --- ## v-bind & v-model ---- v-bind 屬性綁定: 在後方可加入一變數或表達式 ```htmlmixed= <template> <div id="app"> <input type="checkbox" v-bind:checked="selected"> </div> </template> <script> export default { data: { selected: true, } } </script> ``` ![](https://i.imgur.com/5iMCHpj.png) ---- v-model 雙向綁定: 就像是結合了v-bind 跟 v-on一樣,初始綁定並呈現資料外還會監聽事件來做資料更新 ```htmlmixed= <template> <div id="app"> <input v-model="num" /> <h1>{{num}}</h1> </div> <template> <script> export default { data: { num: null, } } </script> ``` ---- ![](https://i.imgur.com/KKyIcCw.png) --- ## 練習時間~ clone 或 pull [這個](https://github.com/steve5631/EX.code/tree/vue)並觀察這個專案的 各功能的用法及原理 ---- ![](https://i.imgur.com/RGPrhiL.png) --- 前端的開發除了功能的實現之外UI及UX也非常重要 可以嘗試在Vue專案上結合CSS framework 像是Bootstrap或Vuetify等框架來美化專案 --- # *fin* ![](https://i.imgur.com/Cisw7HI.png)
{"metaMigratedAt":"2023-06-15T02:46:28.466Z","metaMigratedFrom":"YAML","title":"Develop on Vue CLI","breaks":true,"slideOptions":"{\"transition\":\"slide\"}","contributors":"[{\"id\":\"d182e945-f719-41cd-8488-cb93bdb49c93\",\"add\":3585,\"del\":339}]"}
    405 views