Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

220
Views
Pregunta sobre mejores prácticas: inmutabilidad y renderizado con React Native

Creé un mapa inmutable y actualmente lo estoy usando con redux y tengo algunas preguntas generales sobre la inmutabilidad. Por lo que entiendo, al pasar accesorios a un componente, los accesorios hacen un renderizado inicial. Si se cambia el valor de la propiedad, no se vuelve a procesar, ya que Javascript está realizando una operación === para verificar la dirección de la memoria en lugar de verificar los valores de esa memoria. Lo que hace la inmutabilidad es cambiar la dirección dentro de la memoria para activar la nueva representación. Mi preocupación en este momento es: ¿no estamos desperdiciando recursos de memoria si planeo no usar nunca el mapa que está almacenado en la dirección anterior en la memoria? Además, si esto se hace de forma repetitiva con el usuario haciendo clic en un mapa inmutable expandiendo su uso de memoria cada vez más, ¿no podría esto causar problemas de rendimiento? ¿Hay alguna manera de eliminar la dirección anterior en la memoria después de crear la nueva? Aquí hay parte de mi código Redux si pudiera darme consejos sobre si estoy haciendo algo mal:

 import {Map} from 'immutable' const likesAndSaved = new Map() function likesAndSavedReducer(state = likesAndSaved, action) { switch (action.type) { case 'updateObj': return state.set(action.payloadId, action.payloadData) default: return state; } }
about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Los objetos sin referencia son eliminados de la memoria por el recolector de elementos no utilizados. Eso también se aplica al "valor anterior" en un mapa Immutable.js.

Para citar la página de introducción de immutable-js.com :

Estas estructuras de datos son muy eficientes en las máquinas virtuales de JavaScript modernas mediante el uso compartido estructural a través de intentos de mapas hash e intentos de vectores , como lo popularizaron Clojure y Scala, lo que minimiza la necesidad de copiar o almacenar en caché los datos.

Cuando crea un mapa con 1000 entradas y luego cambia una sola, este tipo de estructura de datos no tiene que copiar todas estas referencias y/o valores. En cambio, solo tiene que extender una pequeña parte del trie. Entonces, incluso si mantuviera una referencia tanto al estado antiguo como al nuevo, el aumento en el uso de la memoria sería mínimo. Cuando borra la referencia a un estado (por ejemplo, el anterior), la VM de javascript puede borrar esa memoria cuando lo desee.

Es posible que incluso gane rendimiento, ya que la verificación superficial de las propiedades con === ahora es suficiente para determinar los cambios. Ahora puede usar PureComponent de forma segura. No es necesario analizar en profundidad los objetos para determinar si los datos realmente han cambiado.

Descargo de responsabilidad: formo parte del equipo de mantenimiento de Immutable.js y también lo uso mucho en aplicaciones grandes.

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!