在 PHP 框架中使用 React。我该如何进行路由?
Using React in a PHP framework. How do I go about routing?
我有一个使用 Kohana 框架编写的网站。我在我的控制器中做事的方式是这样的:
public function action_about() {
$this->template->body = View::factory('main');
$this->template->body->set('main', 'about');
}
我已经完成了使用 React 路由器的 React 教程。要从一页转到另一页,我有一个像这样的函数:
goToAbout(event) {
event.preventDefault();
this.context.router.transitionTo('about');
}
按照我的理解,如果我将 React 添加到 MVC 框架中,它应该简单地替换 V。这意味着我仍然应该使用我的框架的路由和控制器。这就是我被困的地方。我错过了什么?
在这种情况下,它会增加应用程序的 "View" 层。您仍然需要使用服务器端框架渲染视图,但之后您可以让 React 处理所有事情。例如,假设您的 React 应用程序有三个路由“/users”、“/users/:id”、“/users/new”。服务器端框架 (Kohana) 中的路由仍然必须响应这些路由。
但是,您可以在每个控制器中呈现相同的视图,而不是为每个路由呈现自定义视图 - 一个包含 Javascript 以挂载您的 React 应用程序的视图。
将您的 React 应用程序安装到页面后,它将负责解析 URL 并安装正确的组件。
PS。或者,如果您的服务器端框架允许,您也可以将每个 URL 映射到同一个控制器以呈现上述视图。
我有一个使用 Kohana 框架编写的网站。我在我的控制器中做事的方式是这样的:
public function action_about() {
$this->template->body = View::factory('main');
$this->template->body->set('main', 'about');
}
我已经完成了使用 React 路由器的 React 教程。要从一页转到另一页,我有一个像这样的函数:
goToAbout(event) {
event.preventDefault();
this.context.router.transitionTo('about');
}
按照我的理解,如果我将 React 添加到 MVC 框架中,它应该简单地替换 V。这意味着我仍然应该使用我的框架的路由和控制器。这就是我被困的地方。我错过了什么?
在这种情况下,它会增加应用程序的 "View" 层。您仍然需要使用服务器端框架渲染视图,但之后您可以让 React 处理所有事情。例如,假设您的 React 应用程序有三个路由“/users”、“/users/:id”、“/users/new”。服务器端框架 (Kohana) 中的路由仍然必须响应这些路由。
但是,您可以在每个控制器中呈现相同的视图,而不是为每个路由呈现自定义视图 - 一个包含 Javascript 以挂载您的 React 应用程序的视图。
将您的 React 应用程序安装到页面后,它将负责解析 URL 并安装正确的组件。
PS。或者,如果您的服务器端框架允许,您也可以将每个 URL 映射到同一个控制器以呈现上述视图。