es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Es una mala práctica utilizar clases para el hook useState en React?

Tengo el componente con un useState hook al que le paso la clase SelectionArea. Hice esto para mejorar la legibilidad y facilidad de uso del código. ¿Es esto una mala práctica? ¿Cómo afecta esto al rendimiento?

Código del componente:

const [selectionArea, setSelectionArea] = useState<SelectionArea | null>(null);

if (selectionArea === null) {
setSelectionArea(new SelectionArea({
offsetX : event.nativeEvent.offsetX,
offsetY : event.nativeEvent.offsetY
}));
} else {
setSelectionArea(new SelectionArea({
offsetX : selectionArea.getOffsetX(),
offsetY : selectionArea.getOffsetY(),
width : event.nativeEvent.offsetX – selectionArea.getOffsetX(),
height : event.nativeEvent.offsetY – selectionArea.getOffsetY()
}));
}

Selección de área.ts:

class SelectionArea
{
private readonly offsetX : number;
private readonly offsetY : number;
private readonly width : number;
private readonly height : number;

public constructor(options?: ISelectionArea)
{
    this.offsetX = options?.offsetX || 0;

    this.offsetY = options?.offsetY || 0;

    this.width   = options?.width   || 0;

    this.height  = options?.height  || 0;
}

public getWidth(): number
{
    return this.width;
}

public getHeight(): number
{
    return this.height;
}

public getOffsetX(): number
{
    return this.offsetX;
}

public getOffsetY(): number
{
    return this.offsetY;
}

}

export default SelectionArea;

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Utilizar el gancho useState para pasar la clase SelectionArea a un componente no es necesariamente una mala práctica, ya que puede mejorar la legibilidad y la usabilidad del código. Sin embargo, es importante considerar cómo esto afecta el rendimiento. Dependiendo del tamaño de los datos que se pasen, esto podría conducir a una disminución en el rendimiento. Además, si los datos se pasan con frecuencia, esto también podría conducir a una disminución en el rendimiento.

Comments are closed.