Mẹo Laravel Blade

· 4 min read

Blade là engine templating mạnh mẽ của Laravel. Đây là một số mẹo để tận dụng tối đa:

Blade Component

Component cho phép bạn tái sử dụng các phần tử UI. Chúng đặc biệt hữu ích để tạo layout nhất quán và widget tái sử dụng.

Tạo Component

Để tạo component, sử dụng lệnh Artisan:

php artisan make:component Alert

Lệnh này tạo hai file:

  • app/View/Components/Alert.php: Logic cho component.
  • resources/views/components/alert.blade.php: Blade template cho component.

Sử Dụng Slot

Slot cho phép bạn truyền nội dung vào component. Ví dụ:

alert.blade.php:

<div class="alert alert-{{ $type }}">
    {{ $slot }}
</div>

Cách sử dụng:

<x-alert type="success">
    Thao tác thành công!
</x-alert>

Thuộc Tính Động

Bạn có thể truyền thuộc tính động cho component:

<x-alert :type="$status" class="custom-class" />

Class Có Điều Kiện

Sử dụng directive @class để áp dụng class có điều kiện. Điều này làm template của bạn sạch và dễ đọc hơn:

<div @class([
    'alert',
    'alert-success' => $success,
    'alert-danger' => !$success,
])>
    Thông báo ở đây
</div>

Vòng Lặp Và Chỉ Mục

Blade cung cấp biến $loop để truy cập metadata về iteration hiện tại:

@foreach($items as $item)
    <p>{{ $loop->iteration }}: {{ $item }}</p>
    @if($loop->first)
        <p>Đây là item đầu tiên!</p>
    @endif
    @if($loop->last)
        <p>Đây là item cuối cùng!</p>
    @endif
@endforeach

Directive Tùy Chỉnh

Bạn có thể định nghĩa directive Blade riêng cho các tác vụ lặp lại. Ví dụ:

Đăng Ký Directive:

// Trong AppServiceProvider hoặc service provider riêng
Blade::directive('datetime', function ($expression) {
    return "<?php echo ($expression)->format('d/m/Y H:i'); ?>";
});

Cách sử dụng:

<p>@datetime($post->created_at)</p>

Render Inline

Cho những đoạn nhỏ, bạn có thể sử dụng directive @php:

@php
    $greeting = "Xin chào, Thế giới!";
@endphp
<p>{{ $greeting }}</p>

Hoặc sử dụng cú pháp {{ }} cho một dòng:

<p>{{ $user->name ?? 'Khách' }}</p>

Best Practice

  1. Giữ Template Sạch: Tránh đặt logic phức tạp trong file Blade. Sử dụng controller hoặc view composer để chuẩn bị dữ liệu.
  2. Sử Dụng Component: Chia nhỏ UI thành các component tái sử dụng.
  3. Escape Output: Luôn sử dụng {{ }} để escape output trừ khi bạn chắc chắn nội dung an toàn.
  4. Tận Dụng Cache: Sử dụng view caching của Laravel để cải thiện hiệu năng.

Thành thạo Blade sẽ làm template của bạn sạch hơn, dễ bảo trì hơn và hiệu quả hơn. Hãy bắt đầu áp dụng những mẹo này vào dự án Laravel của bạn ngay hôm nay!

Bình luận