Båda kör effekter, men vid olika tidpunkter i förhållande till webbläsarens rendering — och den tidsskillnaden är själva poängen.
useEffectkörs efter att webbläsaren har renderat. Det är asynkront och icke-blockerande. Använd det för nästan allt (data, prenumerationer, loggning).useLayoutEffectkörs synkront efter att DOM har muterades men FÖRE webbläsaren renderar. Använd det när du måste läsa layout och ändra DOM i samma frame för att undvika ett synligt flimmer.
