Bridging React With Other Popular Web Languages

React is a view library written in JavaScript, and so it is agnostic of any stack configuration and can make an appearance in practically any web application that is using HTML and JavaScript for its presentation layer.

As React works as the ‘V’ in ‘MVC’, we can create our own application stack from our preferences. So far in this guide we have seen React working with Express, a Node ES6/JavaScript-based framework. Other popular Node-based matches for React are the Meteor framework and Facebook’s Relay.

If you want to take advantage of React’s excellent component-based JSX system, the virtual DOM and its super-fast rendering times with your existing project, you can do so by implementing one of the many open-source solutions.

PHP

As PHP is a server-side scripting language, integration with React can come in several forms:

Server-Side Rendering

For rendering React components on the server, there is a library available on GitHub.

For example, we can do the following in PHP with this package:

The power of combining React with any server-side scripting language is the ability to feed React with data, and apply your business logic on the server as well as the client side. Renovating an old application into a Reactive app has never been easier!

Using PHP + Alto Router

For an example application, take a look at this repository on GitHub.

Configure your AltoRouter as so:

With the AltoRouter setup serving your application’s pages for the routes specified, you can then just include your React code inside the HTML markup and begin using your components.

JavaScript:

Ensure you include the React libraries and also place the HTML inside the body tag that will be served from your PHP AltoRouter app, for example:

Laravel Users

For the highly popular PHP framework Laravel, there is the react-laravel library, which enables React.js from right inside your Blade views.

For example:

The prerender flag tells Laravel to render the component on the server side and then mount it to the client side.

Example Laravel 5.2 + React App

Look at this excellent starter repository for an example of getting Laravel + React working by Spharian.

To render your React code inside your Laravel, set your React files’ source inside the index.blade.php body tag, by adding the following for example:

.NET

Using the ReactJS.NET framework, you can easily introduce React into your .NET application.

Install the ReactJS.NET package to your Visual Studio IDE via the NuGET package manager for .NET.

Search the available packages for ‘ReactJS.NET (MVC 4 and 5)’ and install. You will now be able to use any .jsx extension code in your asp.net app.

Add a new controller to your project to get started with React + .NET, and select “Empty MVC Controller” for your template. Once it is created, right click on return View() and add a new view with the following details:

  • View name: Index
  • View Engine: Razor (CSHTML)
  • Create a strongly-typed view: Unticked
  • Create as a partial view: Unticked
  • Use a layout or master page: Unticked

Now you can replace the default code with the following:

Now we need to create the Example.jsx referenced above, so create the file in your project and add your JSX as follows:

Now if you click Play in your Visual Studio IDE, you should see the Hello World comment box example.

Here’s a detailed tutorial on writing a component for asp.net.

Rails

By using react-rails, you can easily add React to any Rails (3.2+) application. To get started, just add the gem:

and install:

Now you can run the installation script:

This will result in two things:

  • A components.js manifest file in app/assets/javascripts/components/; this is where you will put all your components code.
  • Adding the following to your application.js:

Now .jsx code will be rendering, and you can add a block of React to your template, for example:

Ruby JSX

Babel is at the heart of the Ruby implementation of the react-rails gem, and can be configured as so:

Once react-rails is installed into your project, restart your server and any .js.jsx files will be transformed in your asset pipeline.

For more information on react-rails, go to the official documentation.

Python

To install python-react, use pip like so:

You can now render React code with a Python app by providing the path to your .jsx components and serving the app with a render server. Usually this is a separate Node.js process.

To run a render server, follow this easy short guide.

Now you can start your server as so:

Start your python application:

And load up http://127.0.0.1:5000 in a browser to see your React code rendering.

Django

Add react to your INSTALLED_APPS and provide some configuration as so:

Meteor

To add React to your meteor project, do so via:

Then in client/main.jsx add the following for example:

This is instantiating an App React component, which you will define in imports/ui/App.jsx, for example:

Inside the Headline.jsx, you use the following code:

Meteor is ready for React and has official documentation.

No More {{handlebars}}

An important point to note: When using Meteor with React, the default {{handlebars}} templating system is no longer used as it is defunct due to React being in the project.

So instead of using {{> TemplateName}} or Template.templateName for helpers and events in your JS, you will define everything in your View components, which are all subclasses of React.component.

Conclusion

React can be used in practically any language which utilises an HTML presentation layer. The benefits of React can be fully exploited by a plethora of potential software products.

React makes the UI View layer become component-based. Working logically with any stack means that we have a universal language for interface that designers across all facets of web development can utilise.

React unifies our projects’ interfaces, branding and general contingency across all deployments, no matter the device or platform restraints. Also in terms of freelance, client-based work or internally inside large organisations, React ensures reusable code for your projects.

You can create your own bespoke libraries of components and get working immediately inside new projects or renovate old ones, creating fully reactive isometric application interfaces quickly and easily.

React is a significant milestone in web development, and it has the potential to become an essential tool in any developer’s collection. Don’t get left behind.

Tags:

Comments

Related Articles