-
Notifications
You must be signed in to change notification settings - Fork 13
/
JSX.txt
97 lines (72 loc) · 2.85 KB
/
JSX.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
=================
Guía de JSX by dM
=================
JSX es una extensión de JavaScript creada por Facebook para el uso con su
librería React. Sirve de preprocesador (como Sass o Stylus a CSS) y transforma
el código a JavaScript.
De primeras te puede parecer que estás mezclando código HTML dentro de tus
ficheros JavaScript, pero nada más lejos de la realidad. A continuación te lo
explico.
React al basar el desarrollo de apps en componentes, necesitamos crear elementos
HTML que definan nuestro componente, por ejemplo <div>, <p>, <img>, etc...
También necesitaremos indicar cuando se trata de componentes creados por
nosotros con React, como puede ser un <Image />, <List />, etc...
Todo esto podemos hacerlo con JavaScript con los métodos que nos ofrece React
como React.createElement.
Veamos un ejemplo:
Imagina que quieres crear un componente <Icon /> que está definido por un div,
un img y algunas clases de CSS. Con JavaScript sería algo así:
var image = React.createElement('img', {
src: 'react-icon.png',
className: 'icon-image'
});
var container = React.createElement('div', {
className: 'icon-container'
}, image);
var icon = React.createElement('Icon', {
className: 'avatarContainer'
}, container);
ReactDOM.render(
icon,
document.getElementById('app')
);
Con esto tendríamos un componente <Icon /> que se traduciría al siguiente código
HTML:
<div class='icon-container'>
<img src='icon-react.png' class='icon-image' />
</div>
Y con este CSS obtenemos el icono de react:
.icon-image {
width: 100px
}
.icon-container {
background-color: #222;
width: 100px
}
Ahora veamos como se haría lo mismo pero empleando sintaxis JSX:
var Icon = (
<div className='icon-container'>
<img
src='icon-react.png'
className='icon-image'
/>
</div>)
ReactDOM.render(Icon, document.getElementById('app'))
Como puedes ver es mucho más práctico y legible esta sintaxis. Es prácticamente
como escribir HTML pero no estás escribiendo HTML, es JavaScript.
Lo único que has de tener en cuenta es que hay algunas palabras reservadas en
JavaScript y JSX te obliga a nombrar algunos atributos de otra manera, como es
el caso de las class que para definir clases de CSS que con JSX debemos escribir
className.
A medida que nuestra aplicación va creciendo y tenemos componentes más grandes,
que manejan distintos eventos, esta forma de usar JSX nos va a ayudar mucho a
agilizar nuestros desarrollos.
Recuerda, no es escribir HTML dentro de JS, es una forma de crear JS de una
manera más práctica ;)
Para poder utilizar JSX, necesitarías añadir una librería extra a tu HTML, pero
es más aconsejable utilizar un bundler integrado en tu entorno de desarrollo,
como puede ser WebPack o Browserify, y que éste le aplique la transformación
antes de publicar tu código en producción.
Fuente
======
https://carlosazaustre.es/jsx-para-novatos