--- title: 工人大會slides type: slide slideOptions: transition: fade theme: black --- <!-- 大家記得把repo設為public --> <!-- 然後保重 dOuO --> # 程設組 --- <!--DEAD: May, 26--> <!--開場: 睿弘promax--> - 這是我們這幾個月學的東西: - 前端框架 vue.js <!-- skyling--> - 後端框架 express <!-- [name=le37] --> - CSS 框架 tailwindCSS <!--睿弘promax--> - MongoDB (資料庫) 操作 <!--JJH--> - git & github <!-- yen0224 --> --- 我們是去實作 ==留言板== 來應用這些技術和訓練自己的能力 <!-- DEMO : 鐵蛋 --> --- # Vue.js 前端 ---- ## what is vue? - 讓網頁可以動態讀資料的黑魔法 - 前後端分離,讓前端專注在網頁設計上的好框架 - 資料整包整包的拿進來,再整包整包的丟出去 - 頁面分割乾淨,不須同時重整所有組件 --- - ## 組件? ![123](https://i.imgur.com/TVZCpDD.jpg =350x) --- ## 一些方便的好用功能 - v-model 雙向資料綁定(監聽+綁定) ``` <input type="text" v-model="article.title" > ``` - v-bind 綁定屬性(例如新生的學號不是固定資訊,但需要把學號顯示出來的時候) ``` <p v-bind:id="StudentID">...</p> ``` - v-on 監聽事件(例如幫按鈕加上滑過去就顯示下拉選單、按下去就跳去新頁面) ``` <input type = "button" value="按鈕" v-on:事件名稱="事件發生時做什麼"> ``` --- ## 對開發的好處 - 就算其中一部分還沒做出來也能預留空間 - 調整更容易(data不汙染到別的組件) - 可以重複利用(例如導航列) - 解決頻繁操作資料,網頁超慢的問題 --- # Express ---- ## 剛剛講完vue前端的黑魔法,<br>接下來是後端的Express ---- ## 簡單來說 - 前端(vue):看的到的美美的東西 - 後端(Express):看不到的~~髒~~東西 ---- ![123](https://i.redd.it/g46iyw1qgwl41.jpg =500x) ---- ## Why backend(? - 帳號系統 - 驗證 - 當存資料的窗口 - 給前端資料 ---- ## Why Express(? - 跟前端一樣都是js base - 輕量,簡單,好上手 - 快,好用,發展成熟 ---- ## Express router 讓不同的功能可以用url path/params 區分 ![](https://mdn.mozillademos.org/files/14456/MVC%20Express.png) ---- ## Express middleware 後端驗證好幫手 ![](data:image/png;base64,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) --- # TailwindCSS --- ![](https://i.imgur.com/ht6YVhq.png) --- # MongoDB ![MongoDB](https://www.itnetwork.cz/images/46772/lekce5/mdb.png =300x300) ---- ## MongoDB是甚麼 簡單來說,MongoDB是一個NoSQL(非結構化)架構的資料庫 透過運用類似JSON的文件去存取資料 ---- ## MongoDB的特色 前面提到是運用NoSQL架構,所以適合存取非結構資料,例如:HTML 網頁的資料 正因為如此我們採用MongoDB作為我們後端儲存資料的資料庫 ---- ## MongoDB的應用 - 網站即時數據(登/出入) - 快速存取 - 大型、低價值檔案的儲存 - 有擴充需求的資料儲存 - 物件或 JSON 數據存儲 --- ![](https://i.imgur.com/J0vKncP.jpg) ---- # Git & Github ![](https://i.imgur.com/fYLateo.png) ---- - git是一個分散式版本控制軟體,由發明 Linux 的 ~~林姓商人~~ Linus 發明 - github是以 git 為版本控制系統的代碼託管平台 ---- - 他可以有效地幫助我們 ~~把程式寫爆時~~ 比較、回溯程式碼 - 以及在建立新功能時不會影響到當前的穩定版本 - CI/CD 的功能可以自動部署! ---- ![](https://i.imgur.com/4Kc5PAK.png) --- # Live Demo [來自陳立ㄉ鬼之留言板](http://43a3-20-230-18-101.ngrok.io/)