响应

未匹配的标注

响应

创建响应

创建一个inertia响应很简单。要开始,请在您的控制器或路由中调用Inertia::render()方法,提供您希望渲染的JavaScript页面组件的名称以及页面上的任何属性(数据)。

在下面的示例中,我们将传递一个单一属性(event),其中包含四个属性(id, title, start_datedescription)给Event/Show页面组件。

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'
            ),
        ]);

        // 或者,您可以使用inertia()助手...
        return inertia('Event/Show', [
            'event' => $event->only(
              'id',
              'title',
              'start_date',
              'description'
            ),
        ]);
    }
}

在Laravel应用程序中,Event/Show页面通常对应于位于resources/js/Pages/Event/Show.(js|vue|svelte)文件。

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

根模板数据

有时候你可能想要在你的应用程序根Blade模板中访问你的属性数据。例如,您可能希望添加一个meta描述标签、Twitter卡片元标签或Facebook开放图谱元标签。您可以通过$page变量访问这些数据。

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

有时候,您甚至可能想要向根模板提供不会发送到JavaScript页面/组件的数据。这可以通过调用withViewData方法来实现。

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

在调用了withViewData方法之后,您可以像通常访问Blade模板变量一样访问定义的数据。

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

最大响应大小

为了启用客户端历史导航,在浏览器的历史状态中存储所有惯性服务器响应。然而,请记住,某些浏览器对保存在历史状态中的数据量设置了限制。

例如,Firefox有一个640k字符的大小限制,并且如果超过此限制,则会抛出一个“NS_ERROR_ILLEGAL_VALUE”错误。通常情况下,在构建应用程序时,这比您实际上需要的数据要多得多。

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

上一篇 下一篇
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 0
发起讨论 只看当前版本


暂无话题~