Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

8 Commits

Repository files navigation

react-global

A simple React component for exposing global properties on your page. This library is particularly useful for isomorphic apps, where a set of values must be shared between the server and client (e.g. passing initialization variables to third-party libraries).

Installation

npm install react-global

Code Examples

Setting Global Values

varGlobal=require('react-global');<Globalvalues={{FOO: this.props.foo,BAR: this.props.bar}}/>

Getting Global Values

Global.get('FOO')

Note: every Global variable that you declare will actually be available on the window object as a true browser global.

Global.get('FOO')===window.FOO===window['FOO']===FOO

Use Case

This component is meant to ease the case where your isomorphic app's server has some configuration variable's that need to be shared with the browser that will never change over the course of the user's interaction with your app. Below you will find a reusable pattern for accomplishing this task cleanly and concisely using react-global.

server.js

varReact=require('React'),App=require('./views/App.jsx');app.get('/',function(req,res){varmarkup=React.renderToString(<AppclientApiKey={config.client.api.key}/>);res.send('<!DOCTYPE html>'+markup);});

App.jsx

varReact=require('react'),Global=require('react-global');varApp=React.createClass({componentDidMount: function(){ClientLib.init(this.props.clientApiKey);},render: function(){
...
<Globalvalues={{CLIENT_API_KEY: this.props.clientApiKey}}/>...}});// Mount the app if in the browserif(window&&document){React.render(<AppclientApiKey={Global.get('CLIENT_API_KEY')}/>}

A simple but useful pattern!

Contributors

Implementation by Captivation Software (@teamcaptivation), overall design by Adam Nalisnick (@theadam4257)

By all means, if you see room for improvement, let us know!

License

MIT License

About

<Global /> component for isomorphic React apps

Resources

Stars

22 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages