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

本文为协同翻译文章,如您发现瑕疵请点击「改进」按钮提交优化建议
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
讨论数量: 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年前

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