Estoy aprendiendo Redux con React y me topé con este código. No estoy seguro de si es específico de Redux o no, pero he visto el siguiente fragmento de código en uno de los ejemplos.
@connect((state) => {
return {
key: state.a.b
};
})
Si bien la funcionalidad de connect
es bastante sencilla, pero no entiendo el @
antes connect
. Ni siquiera es un operador de JavaScript si no me equivoco.
¿Alguien puede explicar por favor qué es esto y por qué se usa?
Actualizar:
De hecho, es una parte de la react-redux
cual se utiliza para conectar un componente React a una tienda Redux.
javascript
reactjs
decorator
redux
Salman
fuente
fuente
Respuestas:
El
@
símbolo es, de hecho, una expresión de JavaScript actualmente propuesta para significar decoradores :Aquí hay un ejemplo de cómo configurar Redux sin y con un decorador:
Sin un decorador
Usando un decorador
Ambos ejemplos anteriores son equivalentes, es solo una cuestión de preferencia. Además, la sintaxis del decorador aún no está integrada en ningún tiempo de ejecución de Javascript, y aún es experimental y está sujeta a cambios. Si desea usarlo, está disponible con Babel .
fuente
@connect(state => ({todos: state.todos}), dispatch => ({actions: bindActionCreators(actionCreators, dispatch)}))
¡Muy importante!
Estos accesorios se denominan accesorios de estado y son diferentes de los accesorios normales, cualquier cambio en los accesorios de estado de su componente activará el método de representación del componente una y otra vez, incluso si no usa estos accesorios, por lo que por razones de rendimiento intente vincularse solo a su componente los accesorios de estado que necesita dentro de su componente y si usa un accesorio secundario, solo enlace estos accesorios.
ejemplo: digamos que dentro de tu componente solo necesitas dos accesorios:
no hagas esto
hacer esto
fuente