結合Vue.js從無到有架設一個網站

這是用laravel5.4(Back-end)以及Vue2.0(Front-end)做成的專案,為什麼選這兩個配搭?網路上有很多人寫的評論可以自行去google

需求:

PHP 7.2.9(cli)

Composer 1.7.2

Server 10.1.35-MariaDB

Laravel 5.4

Vue 2.0

Create新laravel專案

找到想安裝專案的資料夾,Ctrl+Shift+右鍵 -> 在此處開起命令視窗 ( 就是開起命令提示字元CMD ),輸入以下字串:

composer create-project --prefer-dist laravel/laravel 專案名稱 "5.4.0"

安裝專案會用到的Plugin(laravel方面的)

1. PHP-JWT

我們會需要帳號密碼登入,所以會用到jwt來增加重要資料的保密性

composer require firebase/php-jwt

清除默認安裝配置(laravel方面的)

移除app/Http/Controllers/Auth整個資料夾,我們會用jwt來做用戶認證功能

移除resources/views/welcome.blade.php文件,這個是默認的歡迎頁面,我們不需要它

新增我們需要用到的資料夾(laravel方面的)

後端部分

我為了讓MVC架構更明確,我會把Model獨立初一個資料夾,Controllers底下分API跟Web資料夾,Controller不會直接去跟Model溝通,會透過Repositories,然後主要的功能我都會放在Services資料夾

新增app/Http/Controllers/Web資料夾,放置這個專案會用到的控制器

新增app/Http/Controllers/API資料夾,放置外部專案可以call的控制器

新增app/Models資料夾,放置跟資料庫各個table溝通的檔案

新增app/Repositories資料夾,每個model基本上都會有一個專屬的repository,提供給controller呼叫用

新增app/Services資料夾,主要功能會放置在這邊,也會放一個檔案裏面的function為共用的

前端部分

View方面我會習慣把相關功能放在同一個資料夾裡,但是因為前端要用Vue基本上都用透過Vue去換頁,所以這邊會縮編一些頁面,然後還會將整個專案做出一個template框架,基本上一個專案每個頁面應該只會有內容不一樣,head的內容以及footer的內容或是所要套用的js、css基本上都大同小異

新增resources/views/login資料夾,放登入相關的頁面

新增resources/views/layouts資料夾,放template、JS、CSS、Metatag的集中匯入檔案

新增resources/views/pages資料夾,放所有頁面

新增resources/views/errors資料夾,錯誤頁面

新增我們需要用到的檔案(laravel方面的)

後端部分

新增app/Http/Controllers/Web/LoginController.php,掌管登入頁傳值,判斷帳密,是否可以登入,以及登出功能、將登入的會員資料加密存到session

新增app/Http/Middleware/AuthUserData.php,每個頁面在切換的時候,都會去判斷token有沒有過期,沒有的話會更新一次token,有的話會直接將會員登出並導向登入頁清掉所有的session,判斷JWT、判斷token是否有誤都是在這邊

新增app/Services/AuthService.php,將會員資料存到Session,存在這邊當然取也是在這邊,清除也是在這邊

新增app/Services/CommonTools.php,所有後端會用到的判斷function或是紀錄function或是通用小功能都會放在這

新增app/Services/JWTController.php,JWT功能在這邊

新增config/global.php,全域變數會放在這邊

前端部分

新增resources/views/layouts/css_list.blade.php,個別把css匯入抓出一個檔案放置

新增resources/views/layouts/js_list.blade.php,個別把js匯入抓出一個檔案放置

新增resources/views/layouts/metatag_list.blade.php,把所有的metatag以及有關seo的東西都放置在此

新增resources/views/layouts/template.blade.php,主要框架

新增或修改文字到指定的檔案(laravel方面的)

app/Http/Kernel.php裡的$routeMiddleware新增'userdata' => \App\Http\Middleware\AuthUserData::class,這樣才有辦法每次跳頁的時候要去抓這個值判斷裡面的東西,有點算是一種宣告

config/app.php裡的name可以改成你現在專案的名稱、timezone改成Asia/Taipei

config/global.php裡新增,這三個是JWT會用到的變數

串接資料庫

config/database.php裡設定要連接的資料庫,然後將資料庫裡面每個資料表都新增一個model到app/Models底下,每個model再新增一個repository到app/Repositories底下

安裝Vue到專案裡

因為npm 跟composer有一樣的特性,你可以直接在composer.json檔案裡面直接新增或刪除某個元件,然後執行composer update就可以直接幫妳新增或移除整個元件了,npm一樣,直接修改package.json檔案裡面,然後再執行npm install就可以囉。

以下是我package.json裡面的設定

清除默認安裝配置(vue方面的)

基本上我會把resources/assets/js底下除了app.js留著其他都刪掉

基本上我會把resources/assets/sass底下除了app.scss留著其他都刪掉

移除本身自帶的bootstrap

新增我們需要用到的資料夾(vue方面的)

我習慣分門別類放置檔案,js部分我會新增api、components、mixins、modules、pages資料夾,sass我會新增abstracts、base、components、layouts、pages、themes、vendors資料夾,每個資料夾用途跟laravel雷同這邊不贅述,其實看名稱也大概知道這資料夾該放些什麼了吧

新增我們需要用到的檔案(vue方面的)

一剛開始沒有太多的檔案要放,最主要每個頁面都會有個js檔放置在resources/assets/js底下然後這個js檔會有一個.vue檔放在resources/assets/js/pages底下,js檔主要是用來import那個.vue檔

新增或修改文字到指定的檔案(vue方面的)

修改resources/assets/js/app.js成以下這樣

修改resources/assets/sass/app.scss成以下這樣

--------------------------------------------才到第五步---------------------------------------------------

https://laravelacademy.org/post/9504.html

Last updated

Was this helpful?