响应

未匹配的标注

响应

创建响应

创建一个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 网站上。

上一篇 下一篇
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
讨论数量: 0
发起讨论 只看当前版本


暂无话题~