Xin chào. Các bạn thật tuyệt vời, tôi đã trở lại với một bài viết mới, nơi tôi sẽ thảo luận về chỉ thị @stack
, @push
& @prepend
trong Laravel Blade templating
Sẽ có rất nhiều ý kiến khác nhau về cách sử dụng các chỉ thị mẫu lưỡi cắt. Nó có thể thay đổi từ nhà phát triển sang nhà phát triển. Trong bài viết này, tôi sẽ cố gắng hết sức để giúp bạn hiểu một số kiến thức của tôi về @stack, @push & @prepend
Tạo khuôn thông thường [@yield
& @section
]
Hầu hết thời gian khi bạn làm việc trên Laravel blade template bạn sử dụng @yield
như sau
bậc thầy. lưỡi. php
Laravel Blade Templating Demo @yield['stylesheets'] @yield['content'] @yield['javascripts']
Bạn sẽ mở rộng tất cả các mẫu con của mình bằng chỉ thị @section như sau
trẻ em. lưỡi. php
@extends['layouts.master'] @section['stylesheets'] @endsection @section['javascripts'] @endsection @section['content'] Some random content @endsection
Về cơ bản @yield
sẽ được thay thế bằng nội dung
@extends['layouts.master'] @section['stylesheets'] @endsection @section['javascripts'] @endsection @section['content'] Some random content @endsection1
GHI CHÚ. Bạn không thể sử dụng các chỉ thị phần giống nhau hai lần trong mẫu lưỡi kiếm của mình, tức là@extends['layouts.master'] @section['stylesheets'] @endsection @section['javascripts'] @endsection @section['content'] Some random content @endsection2. Nếu bạn cố gắng sử dụng thì chỉ cái đầu tiên hoạt động
Nhược điểm của mẫu trên
Hãy xem xét, nếu bạn muốn thêm bất kỳ thứ gì trước @yield hoặc sau lệnh @yield đó hoặc nếu mẫu lưỡi con của bạn có các phần mà bạn muốn thêm thứ gì đó thì đó sẽ là cơn ác mộng
Không thể thêm vào trước hoặc thêm vào lệnh gốc @yield. Có thể đạt được với chỉ thị @parent, nhưng không hoàn toàn và thậm chí một số người mới bắt đầu cảm thấy phức tạp
Tạo khuôn mẫu trước [@extends['layouts.master']
@section['stylesheets']
@endsection
@section['javascripts']
@endsection
@section['content']
Some random content
@endsection
3, @extends['layouts.master']
@section['stylesheets']
@endsection
@section['javascripts']
@endsection
@section['content']
Some random content
@endsection
4 & @extends['layouts.master']
@section['stylesheets']
@endsection
@section['javascripts']
@endsection
@section['content']
Some random content
@endsection
5]
Nhưng đừng lo
@extends['layouts.master'] @section['stylesheets'] @endsection @section['javascripts'] @endsection @section['content'] Some random content @endsection6 sẽ đến giải cứu bạn
@stack
- Về cơ bản, nó là một cái giỏ chứa tất cả những thứ được đẩy ra từ mẫu lưỡi dao con. Bạn có thể đẩy vào ngăn xếp nhiều lần nếu cần
Để hiển thị toàn bộ nội dung ngăn xếp, hãy chuyển tên của ngăn xếp cho chỉ thị @stack
@push
- Điều này được sử dụng để nối mã vào chỉ thị @stack của mẫu gốc
@prepend
- Nếu bạn muốn đặt bất cứ thứ gì trước mã @stack thì bạn sẽ sử dụng @prepend để đặt nội dung trước nó
Mẫu lưỡi dao cho phép bạn đẩy tới các ngăn xếp được đặt tên có thể được hiển thị ở một nơi khác trong chế độ xem hoặc bố cục khác
bậc thầy. lưỡi. php
________số 8_______Bây giờ bạn có thể sử dụng cái này như sau
@extends['layouts.master'] @push['stylesheets'] @endpush @push['stylesheets'] @endpush @prepend['stylesheets'] @endprepend @section['content'] some content @endsection
Nếu bạn đã quan sát cẩn thận, chúng tôi đã sử dụng
Form Upload @stack['stylesheets'] @yield['content'] @stack['javascripts']0 2 lần. Ồ. Vâng, nó hoạt động hoàn toàn tốt
Chỉ thị
@extends['layouts.master'] @section['stylesheets'] @endsection @section['javascripts'] @endsection @section['content'] Some random content @endsection5 sẽ thêm nội dung của nó lên trên 2 chỉ thị
Form Upload @stack['stylesheets'] @yield['content'] @stack['javascripts']2 hàng đầu của nó
GHI CHÚ. Về cơ bản, bạn có thể sử dụng @stack với Javascripts rất nhiều. ví dụ. Nếu bạn muốn thêm một số thư viện từ mẫu lưỡi chính
Phần kết luận
Ya tôi biết nó ít được sử dụng nhất trong việc tạo khuôn mẫu vì nhiều người trong số họ có thể không bắt gặp. Nhưng vâng, nó hoàn toàn đáng để sử dụng trong dự án tiếp theo của bạn