路由

未匹配的标注

路由

定义路由

使用Inertia时,您的应用程序的所有路由都是在服务器端定义的。这意味着您不需要Vue Router或React Router。相反,您可以简单地定义Laravel路由并从这些路由返回Inertia响应

简写路由

如果您有一个不需要对应控制器方法的页面,比如”FAQ”或”关于”页面,您可以直接通过Route::inertia()方法将其定位到组件。

Route::inertia('/about', 'About');

生成URLs

一些服务器端框架允许您从命名路由生成URLs。然而,在客户端上,您将无法访问这些辅助函数。以下是几种仍然可以与Inertia一起使用命名路由的方式。

第一种选择是在服务器端生成URLs,并将它们作为props包含进来。请注意,在此示例中我们如何将edit_urlcreate_url传递给Users/Index组件。

class UsersController extends Controller
{
    public function index()
    {
        return Inertia::render('Users/Index', [
            'users' => User::all()->map(function ($user) {
                return [
                    'id' => $user->id,
                    'name' => $user->name,
                    'email' => $user->email,
                    'edit_url' => route('users.edit', $user),
                ];
            }),
            'create_url' => route('users.create'),
        ]);
    }
}

然而,在使用Laravel时,Ziggy库可以通过全局的route()函数使您能够访问命名的服务器端路由。实际上,如果您正在使用Laravel的starter kits之一开发应用程序,则已经为您配置了Ziggy。

如果您在Vue中使用Ziggy,将此函数作为自定义的$route属性可用会很有帮助,这样您就可以直接在模板中使用它。

Vue 2:

Vue.prototype.$route = route

Vue 3:

app.config.globalProperties.$route = route
<Link :href="$route('users.create')">Create User</Link>

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

上一篇 下一篇
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
讨论数量: 0
发起讨论 只看当前版本


暂无话题~