Last active
August 29, 2015 14:22
-
-
Save sergiodxa/587fbc832b682ff55c71 to your computer and use it in GitHub Desktop.
Usando react-engine para renderizar React.js en el server con Express.j
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import express from 'express'; | |
import engine from 'react-engine'; | |
// iniciamos nuestra aplicación de express | |
const app = express(); | |
// definimos el engine para archivos jsx | |
app.engine('.jsx', engine.server.create()); | |
// configuramos la ruta a las vistas | |
app.set('views', path.join(__dirname, 'views')); | |
// indicamos que el engine a usar es el de archivos jsx | |
app.set('view engine', 'jsx'); | |
// le indicamos que use react-engine como engine de nuestras vistas | |
app.set('view', engine.expressView); | |
// simplemente llamamos a res.render y react-engine se encarga de renderizar el componente Home para nosotros | |
app.get('/', (req, res) => res.render('home')); | |
app.listen(3000); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import React from 'react'; | |
import Layout from './layout'; | |
const Home = React.createClass({ | |
render() { | |
return ( | |
<Layout title="Homepage"> | |
<h1>Hola mundo</h1> | |
</Layout> | |
); | |
} | |
}); | |
export default Home; |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import React from 'react'; | |
// acá definimos el layout de nuestro HTML donde están los tags html, head, body, etc. | |
const Layout = React.createClass({ | |
render() { | |
return ( | |
<html lang="es-AR"> | |
<head> | |
<meta charSet="utf-8" /> | |
<title>{ this.props.title }</title> | |
<meta name="viewport" | |
content="width=device-width, initial-scale=1.0" /> | |
<link rel="stylesheet" | |
href="/assets/css/style.css" /> | |
</head> | |
<body> | |
{ this.props.children } | |
<script src="/assets/js/app.js"></script> | |
</body> | |
</html> | |
); | |
} | |
}); | |
export default Layout; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment