Laravel Blade 模板一次性组件 @once

Laravel

在 Laravel 7.25 版本中, Blade 新增了一个组件 @once 。该组件用于单次标签的渲染工作,这样说可能不太好理解,我们通过例子做一下说明: pull request:

组件内容如下

@once
    <script>
       无论该组件被渲染多少次,在模板中你只会看到一次输出。
    </script>
@endonce

下面是由 Mohamed 提供的另一个例子:

@once
<template id="recieptsTemplate">
    <div class="flex flex-column items-center">
        <div class="w-1/2" data-reciept="paid_at"></div>
        <div class="w-1/4" data-reciept="amount"></div>
    </div>
</template>
@endonce

<div data-id="receipts" class="divide-y divide-grey-300"></div>

这是一个收据清单,收据模板在整个页面中只需要呈现一次,但是组件本身可以被多次调用,这并不会影收据响清单结构。

你可以在 v7.25 以及之后的 Laravel 版本中直接使用 once了。 

本文中的所有译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。

原文地址:https://laravel-news.com/laravel-blade-o...

译文地址:https://learnku.com/laravel/t/48857

本文为协同翻译文章,如您发现瑕疵请点击「改进」按钮提交优化建议
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
讨论数量: 2

还是不明白场景

3年前 评论
Marrigan 3年前
游离不2

整明白了,其实就是防重复渲染。前提是要指定相同的 ID,还是通过看代码比较好理解

  • 错误理解:只显示一次
@once
<div>你能看到我一次</div>
@endonce

结果:每次刷新都还是能看到 你能看到我一次

  • 正确使用姿势
@once('your-once-id')
<div>你能看到我</div>
@endonce
@once('your-once-id')
<div>但是你看不到我!</div>
@endonce

结果:能看到 你能看到我,看不到 但是你看不到我!

  • 结论:只是在同一个 ID 的情况下防止重复渲染。
3年前 评论
半人间 3年前
游离不2 (作者) 3年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!