路由
路由
定义路由
使用Inertia时,您的应用程序的所有路由都是在服务器端定义的。这意味着您不需要Vue Router或React Router。相反,您可以简单地定义Laravel路由并从这些路由返回Inertia响应。
简写路由
如果您有一个不需要对应控制器方法的页面,比如”FAQ”或”关于”页面,您可以直接通过Route::inertia()
方法将其定位到组件。
Route::inertia('/about', 'About');
生成URLs
一些服务器端框架允许您从命名路由生成URLs。然而,在客户端上,您将无法访问这些辅助函数。以下是几种仍然可以与Inertia一起使用命名路由的方式。
第一种选择是在服务器端生成URLs,并将它们作为props包含进来。请注意,在此示例中我们如何将edit_url
和create_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>
推荐文章: