I have a website written using Kohana Framework. The way I've been doing things in my controller is like so:
public function action_about() {
$this->template->body = View::factory('main');
$this->template->body->set('main', 'about');
}
I've gone through a React tutorial where react router is used. To go from page to page, I had a function like so:
goToAbout(event) {
event.preventDefault();
this.context.router.transitionTo('about');
}
The way I understand it, if I'm adding React to an MVC framework, it should simply replace the V. That would mean I should still be using my framework's routing and controller. This is where I'm stuck. What am I missing?
In this circumstance, it augments the "View" layer of your application. You still have to render a view with your server side framework, but you can let React take care of everything after that. For example, suppose your react app has three routes "/users", "/users/:id", "/users/new". The routing in your server side framework (Kohana) must still respond to these routes.
However, instead of rendering a custom view for each route, you would render out the same view in each controller - a view that includes the Javascript to mount your React app.
Once your React app is mounted to the page, it will take care of parsing the URL and mounting the correct component.
PS. Alternatively, if your server side framework allows it, you might also map each URL to the same controller to render the aforementioned view.