响应 Responses

未匹配的标注

创建响应

在您的控制器中创建响应时,请提供 JavaScript 页面组件的名称,以及页面的任何 props 数据。

在本例中,我们传递一个名为 event 的 prop 给 Event/Show 页面组件,它包含4个属性 (idtitlestart_date 和 description)。

Laravel

use Inertia\Inertia;

class EventsController extends Controller
{
    public function show(Event $event)
    {
        return Inertia::render('Event/Show', [
            'event' => $event->only('id', 'title', 'start_date', 'description'),
        ]);

        // Alternatively, you can use the inertia() helper
        return inertia('Event/Show', [
            'event' => $event->only('id', 'title', 'start_date', 'description'),
        ]);

    }
}

要做出 Inertia 响应,请使用 Inertia 渲染函数。这个方法采用组件名称,并允许您传递 props 和查看数据。

为了确保页面快速加载,只返回页面所需的最小数据。此外,请注意,从控制器返回的所有数据都将在客户端可见,因此,请确保忽略敏感信息。

根模板数据

在某些情况下,您可能希望访问根 Blade 模板中的 prop 数据。例如,你可能想要添加 meta 描述标签,Twitter 卡片 meta 标签,或 Facebook Open Graph meta 标签。

Laravel

<meta name="twitter:title" content="{{ $page['props']['event']->title }}">

这些 props 可通过 $page 变量提供。

有时你甚至可能想提供不会发送到 JavaScript 组件的数据。

Laravel

return Inertia::render('Event', ['event' => $event])
    ->withViewData(['meta' => $event->meta]);

使用 withViewData() 方法执行此操作。

你可以像访问常规模板变量一样访问此变量。

Laravel

<meta name="description" content="{{ $meta }}">

最大响应大小

为了开启客户端历史导航,所有的 Inertia 服务器响应都被存储在浏览器的历史状态中。值得注意的是,一些浏览器对可以在其中保存的数据量施加了大小限制。例如,火狐 的大小限制为 640k 个字符 (如果超过该大小,则会抛出一个 NS_ERROR_ILLEGAL_VALUE 的错误)。 这通常比您所需要的要多得多,但在构建惯性应用程序时最好意识到这一点。

本文章首发在 LearnKu.com 网站上。

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

原文地址:https://learnku.com/docs/inertia/0.11/re...

译文地址:https://learnku.com/docs/inertia/0.11/re...

上一篇 下一篇
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
贡献者:1
讨论数量: 0
发起讨论 只看当前版本


暂无话题~