跳至內容

Laravel Blade 初學者教學 2026:掌握視圖、佈局與元件

2026年2月9日
Bruno Wong
| 未有評論


適合對象:Laravel 新手、PHP 開發者、想快速上手現代 Blade 模板的同學

Laravel 的 Blade 模板引擎是打造優雅、可維護前端視圖的核心工具。它簡單卻強大:既支援原生 PHP,又提供大量便捷指令,讓你的 HTML 程式碼乾淨俐落。

在 2026 年的 Laravel(11.x / 12.x)中,Blade 仍是主流選擇,尤其在元件化開發上更加成熟。本文將帶你從零開始,掌握視圖基礎、佈局繼承、現代元件用法。

1. Blade 是什麼?為什麼值得學習?

  • Blade 檔案以 .blade.php 結尾
  • 自動編譯成純 PHP,效能優秀
  • 支援模板繼承、元件、插槽、條件、迴圈等
  • 與 Livewire、Inertia 等前端方案無縫整合
  • 官方文件:https://laravel.com/docs/blade

2. 基本語法快速瀏覽

在控制器中返回視圖並傳遞資料:

PHP

// routes/web.php 或控制器
return view('welcome', [
    'title' => '我的 Laravel 應用',
    'users' => ['張三', '李四', '王五']
]);

視圖檔案 resources/views/welcome.blade.php:

blade

<!DOCTYPE html>
<html>
<head>
    <title>{{ $title }}</title>
</head>
<body>
    <h1>歡迎使用 Laravel {{ now()->year }}!</h1>
    
    <!-- 輸出已轉義,防止 XSS -->
    <p>目前使用者:{{ $users[0] }}</p>
    
    <!-- 不轉義輸出(小心使用) -->
    <div>{!! '<strong>粗體內容</strong>' !!}</div>
    
    <!-- 迴圈 -->
    <ul>
        @foreach ($users as $user)
            <li>{{ $user }}</li>
        @endforeach
    </ul>
    
    <!-- 條件 -->
    @if (count($users) > 3)
        <p>使用者很多!</p>
    @else
        <p>使用者較少</p>
    @endif
</body>
</html>

常用指令速查:

  • @if / @else / @endif
  • @foreach / @endforeach
  • @for / @endfor
  • @while / @endwhile
  • @isset($var) / @empty($var)
  • {{ $var ?? '預設值' }}
  • @auth / @guest

3. 佈局(Layout) — 避免重複撰寫頭尾

現代網頁應用幾乎都使用佈局來統一結構。

步驟 1:建立主佈局 resources/views/layouts/app.blade.php

blade

<!DOCTYPE html>
<html lang="zh-TW">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>@yield('title') - 我的應用</title>
    <link href="{{ asset('css/app.css') }}" rel="stylesheet">
</head>
<body class="antialiased">
    <header>
        <nav>導航列</nav>
    </header>

    <main class="container mx-auto py-8">
        @yield('content')
    </main>

    <footer class="bg-gray-800 text-white py-4">
        <div class="container mx-auto text-center">
            © {{ now()->year }} Laravel 學習站
        </div>
    </footer>

    <script src="{{ asset('js/app.js') }}"></script>
    @stack('scripts')
</body>
</html>

步驟 2:子頁面繼承佈局 resources/views/home.blade.php

blade

@extends('layouts.app')

@section('title', '首頁')

@section('content')
    <h1 class="text-3xl font-bold">歡迎來到首頁!</h1>
    
    <p>這是內容區域</p>
@endsection

@push('scripts')
    <script>
        console.log('首頁專用 JS');
    </script>
@endpush

4. 現代推薦:Blade 元件(Components) — 2026 年最愛

元件比舊式的 @include 更強大,支援屬性、插槽。

建立元件

Bash

php artisan make:component Alert

產生兩個檔案:

  • app/View/Components/Alert.php
  • resources/views/components/alert.blade.php

元件視圖 alert.blade.php:

blade

<div class="p-4 rounded {{ $type === 'success' ? 'bg-green-100 text-green-800' : 'bg-red-100 text-red-800' }}">
    {{ $slot }}
</div>

使用元件

blade

<x-alert type="success">
    操作成功!歡迎加入我們。
</x-alert>

<x-alert type="error">
    密碼錯誤,請重試。
</x-alert>

帶命名插槽的高級用法

blade

<x-card>
    <x-slot name="header">
        <h2 class="text-xl">卡片標題</h2>
    </x-slot>
    
    <p>卡片內容...</p>
</x-card>

5. 最佳實務與小技巧(2026 版)

  • 搭配 Tailwind CSS + Blade 元件,開發效率翻倍
  • 優先使用匿名元件(無需類別),適合簡單 UI 區塊
  • 大型專案推薦使用 Storybook for Blade 或元件庫(如 Laravel Volt)
  • 避免在 Blade 中寫複雜邏輯 → 移到 View Composer 或元件類別
  • 開啟 Blade 快取:php artisan view:cache
  • 除錯技巧:@dd($variable) 或 Laravel Debugbar

結語

掌握 Blade 後,你的 Laravel 前端程式碼會變得異常優雅、可重用。建議搭配 Laravel Breeze / Jetstream 快速上手完整認證 + 佈局系統。

想看影片示範? YouTube 搜尋:Laravel Blade Tutorial for Beginners 2026 或直接點擊:https://youtu.be/HtbENzC74po

歡迎在下方留言你的疑問,一起學習 Laravel!

標籤:#Laravel #Blade #Laravel教學 #PHP #網頁開發 #2026

登入 發表評論
Django 入門常見問題全解答(2026 年最新版)——從「python 指令找不到」到 Vite + Tailwind 的完整指南