Preact Rpc Save

React Pre-Rendering via RPC

Project README


React Pre-Rendering via RPC

A simple JSON based socket server that fulfills React component render requests.

Introduction and tutorial: Server-side React Rendering From non-Node Environments

The motivation for this project is to use React server-side rendering (aka pre-rendering) from a non-Node app, such as one written in Ruby, or Go.

The preact-rpc server loads a Javascript bundle file containing the React components, and starts listening for render requests on a socket (a TCP socket or a UNIX socket file). A client, such as a Go app, can connect to the server and send a render request by providing a React component identifier and the props to use for rendering. The server returns with an HTML string, that can then be embedded in a view served on the client side.

Install preact-rpc globally:

npm install -g preact-rpc

In your component JS bundle, register your components so that preact-rpc can find them:

import { registerComponent } from 'preact-rpc';
registerComponent('comp1', MyComponent);
registerComponent('comp2', MyOtherComponent);

See lib/example/component.js for example.

Next, start the server. It requires the path to the bundle file and the port to listen on:

preact-rpc --bundle=./lib/example/component.js --port=tmp/server.sock

An example Go client is provided in the example-clients directory. Run the app and visit http://localhost:8080

go run example-clients/client.go

An example Ruby client is also provided in the example-clients directory. Install the gem:

gem install preact-rpc-client

And then run the example:

ruby example-clients/client.rb

More to come:

Add support for Redux stores

Open Source Agenda is not affiliated with "Preact Rpc" Project. README Source: musawirali/preact-rpc
Open Issues
Last Commit
5 years ago

Open Source Agenda Badge

Open Source Agenda Rating