Convertir codigo de un lenguaje en otro similar
var odds = evens.map(v => v + 1);
var nums = evens.map((v, i) => v + i);
var pairs = evens.map(v => ({
even: v, odd: v + 1
}));
// Statement bodies
nums.forEach(v => {
if (v % 5 === 0)
fives.push(v);
});"use strict";
var odds = evens.map(function (v) {
return v + 1;
});
var nums = evens.map(function (v, i) {
return v + i;
});
var pairs = evens.map(function (v) {
return { even: v, odd: v + 1 };
});
// Statement bodies
nums.forEach(function (v) {
if (v % 5 === 0) fives.push(v);
});ES6
JS
Transpile con
Babel
sintaxis tipo XML que sera convertida a JS
<Nav color="blue" />
<Nav color="blue">
<Profile>click</Profile>
</Nav>;
<Form>
<Row>
<Label />
<Input />
</Row>
</Form>ES6
React.createElement(Nav, {color:"blue"});
React.createElement(
Nav,
{color:"blue"},
React.createElement(
Profile,
null,
"click"
)
);
React.createElement(
Form,
{color:"blue"},
React.createElement(
Row,
null,
React.createElement(
Label,
null,
"click"
),
React.createElement(
Input,
null,
"click"
)
)
);JS
var Nav, Profile;
<Nav color="blue" />
<Nav color="blue">
<Profile>click</Profile>
</Nav>
<Form color="blue">
<Row>
<Label />
<Input />
</Row>
</Form>JSX
React.createElement(Nav, {color:"blue"});
React.createElement(
Nav,
{color:"blue"},
React.createElement(
Profile,
null,
"click"
)
);
React.createElement(
Form,
{color:"blue"},
React.createElement(
Row,
null,
React.createElement(
Label,
null,
"click"
),
React.createElement(
Input,
null,
"click"
)
)
);JS
var Nav, Profile;
<Nav color="blue" />
<Nav color="blue">
<Profile>click</Profile>
</Nav>
<Form color="blue">
<Row>
<Label />
<Input />
</Row>
</Form>JSX
React.createElement(Nav, {color:"blue"});
React.createElement(
Nav,
{color:"blue"},
React.createElement(
Profile,
null,
"click"
)
);
React.createElement(
Form,
{color:"blue"},
React.createElement(
Row,
null,
React.createElement(
Label,
null,
"click"
),
React.createElement(
Input,
null,
"click"
)
)
);JS
var Nav, Profile;
<Nav color="blue" />
<Nav color="blue">
<Profile>click</Profile>
</Nav>
<Form color="blue">
<Row>
<Label />
<Input />
</Row>
</Form>JSX
React.createElement(Nav, {color:"blue"});
React.createElement(
Nav,
{color:"blue"},
React.createElement(
Profile,
null,
"click"
)
);
React.createElement(
Form,
{color:"blue"},
React.createElement(
Row,
null,
React.createElement(
Label,
null,
"click"
),
React.createElement(
Input,
null,
"click"
)
)
);JS
var Nav, Profile;
<Nav color="blue" />
<Nav color="blue">
<Profile>click</Profile>
</Nav>
var Form, Row, Label, Input;
<Form color="blue">
<Row>
<Label />
<Input />
</Row>
</Form>JSX
Cuatro propiedades:
Sin metodos.
var root = React.createElement('div');ReactElement
var child = React.createElement(
'li',
null,
'Text Content'
);
var root = React.createElement(
'ul',
{
className: 'my-list',
props: {}
},
child
);ReactElement
var child = React.createElement('li', null, 'Text Content');
var root = React.createElement('ul', { className: 'my-list' }, child);
React.render(root, document.body);var root = <ul className="my-list">
<li>Text Content</li>
</ul>;
React.render(root, document.body);JS
JSX
Funcion que genera un ReactElement con un type especifico
var div = React.createFactory('div');
var root = div({ className: 'my-div' });ReactFactory
Puede ser:
Pueden ser ReactElements que represente elementos hijos (children).
ReactNodes
Para crear objetos encapsulados con un determinado estado (state).
createClass funciona como un constructor que devuelve un objeto que siempre debe tener como minimo un metodo render()
var MyComponent = React.createClass({
render: function() {
...
}
});ReactComponet
var element = React.createElement(MyComponent);var element = <MyComponent />;JS
JSX
Como JSX es JavaScript, ciertos identificadores como class y for no son recomendables como nombres de atributos tipo XML.
En su lugar, los componentes de ReactDOM esperaran nombres de propiedades del DOM como className y htmlFor, respectivamente
<!DOCTYPE html>
<html>
<body>
<!--contenedores donde mostrar nuestros componentes-->
<div id="container"></div>
<div id="container-2"></div>
<!--JS de React-->
<script src="../../build/react.js"></script>
<script src="../../build/react-dom.js"></script>
<!--Nuestro JS-->
<script src="scripts.js"></script>
</body>
</html>var Hello = React.createClass({
render: function() {
return React.createElement(
"div",
null,
"Hello ",
this.props.name
);
}
});
ReactDOM.render(
React.createElement(Hello, {name: "World"}),
document.getElementById('container')
);var ExampleApplication = React.createClass({
render: function() {
return React.DOM.p(null, 'Hello');
}
});
var ExampleApplicationFactory = React.createFactory(ExampleApplication);
ReactDOM.render(
ExampleApplicationFactory(),
document.getElementById('container-2')
);JSX
JS