Zum Hauptinhalt springen
tsecurity.de LIVE
Echtzeit-Radar & Feeds
Alle RSS Feeds
👥 Community & Social
YouTube Security VideosMicrosoft Mechanics: A Copilot Agent Writes the Status Report(23.09.2026 um 03:30 Uhr)
Sichere ProgrammierungOpenTelemetry in the GitHub Copilot app(23.09.2026 um 04:14 Uhr)
Sichere ProgrammierungMy Introduction:(23.09.2026 um 03:53 Uhr)
Sichere ProgrammierungAgentWallex: Content Day (Articles going live)(23.09.2026 um 04:00 Uhr)
Sichere ProgrammierungYour Low-Code Platform Is Fast Until a Customer Builds One Real Table(23.09.2026 um 04:11 Uhr)
YouTube Security VideosMicrosoft Mechanics: A Copilot Agent Writes the Status Report(23.09.2026 um 03:30 Uhr)
Sichere ProgrammierungOpenTelemetry in the GitHub Copilot app(23.09.2026 um 04:14 Uhr)
Sichere ProgrammierungMy Introduction:(23.09.2026 um 03:53 Uhr)
Sichere ProgrammierungAgentWallex: Content Day (Articles going live)(23.09.2026 um 04:00 Uhr)
Sichere ProgrammierungYour Low-Code Platform Is Fast Until a Customer Builds One Real Table(23.09.2026 um 04:11 Uhr)
Intelligence View
⚡ tsecurity.de Intelligence

React.js ~Clean Code Practical Use~

1. The codebase should be created for concentrating on <>JSX Section</> -The JSX section can often be modified after release. Separate a data-fetching section from the view section. // NG🤔 You can not comprehend the im…

0
↗ Quelle (dev.to)
Reagiere als Erste:r — dein Feedback zählt!

1. The codebase should be created for concentrating on <>JSX Section</>



-The JSX section can often be modified after release.




  • Separate a data-fetching section from the view section.




// NG🤔 You can not comprehend the important point intuitively.
const Area = () => {
const [user, setUser] = useState();

useEffect(() => {
const fetchUser = async (): Promise<void> => {
const response = await GetUser();
setUser(response);
};
fetchUser();
}, []);

return <>{user.name}</>;
};

// Good😎 Separate a data-fetching section from the view section.
const useUser = (): User | undefined => {
const [user, setUser] = useState<User>();
useEffect(() => {
const fetchUser = async (): Promise<void> => {
const response = await GetUser();
setUser(response);
};
fetchUser();
}, []);

return user;
};

// A component for showing data.
const Area = () => {
const user = useUser();

return <>{user?.name}</>;
};







2. Don't use too many useState for data-input




// NG🤔 What is going to happen if the `input` element continues to increase...
const UserForm = () => {
const [name, setName] = useState('');
const [email, setEmail] = useState('');

const changeName = (e) => setName(e.target.value);
const changeEmail = (e) => setEmail(e.target.value);

return (
<form onSubmit={onSubmit}>
<input type='text' value={name} onChange={changeName} />
<input type='text' value={email} onChange={changeEmail} />
<input type='submit' value='Submit' />
</form>
);
};

// Good😎 Manage submit data in a user object.
const UserForm = () => {
const [user, setUser] = useState({ name: '', email: '' });

const changeName = (e) =>
setUser((state) => ({ ...user, name: e.target.value }));

const changeEmail = (e) =>
setUser((state) => ({ ...user, email: e.target.value }));

return (
<form onSubmit={onSubmit}>
<input type='text' value={name} onChange={changeName} />
<input type='text' value={email} onChange={changeEmail} />
<input type='submit' value='Submit' />
</form>
);
};

// Cool😎: Take advantage of useForm
const UserForm = () => {
const { register} = useForm();

return (
<form onSubmit={onSubmit}>
<input {...register("name")} />
<input {...register("email")} />
<input type='submit' value='Submit' />
</form>
);
};







3. Insert a default value to an optional one




type Props = {
name: string;
isDisplayNone?: boolean; // An optional props
};

// NG🤔: Defined as isDisplayNone = undefined
const UserCard: FC<Props> = ({ name, isDisplayNone }) => (
<div style={{ display: isDisplayNone ? 'none' : 'block' }}>{name}</div>
);

// Good😎: Defined as isDisplayNone = false
const UserCard: FC<Props> = ({ name, isDisplayNone = false }) => (
<div style={{ display: isDisplayNone ? 'none' : 'block' }}>{name}</div>
);

// When showing isDisplayNone undefined -> false
<UserCard name='名前' />;
// When not showing isDisplayNone true
<UserCard name='名前' isDisplayNone />;







4. Pay attention to import statement




/* NG🤔
├── Layout
├── Header.tsx
└── Footer.tsx
*/

// page.tsx import files separately
import Header from './Layout/Header';
import Footer from './Layout/Footer';

/* Good🥴
├── Layout
├── Header.tsx
├── Footer.tsx
└── index.tsx
*/

// index.tsx
export { default as Header } from './Header';
export { default as Footer } from './Footer';

// page.tsx import as a chunk
import { Footer, Header } from './Layout';







Allow importing from the same path everywhere.




// NG:
import { Footer, Header } from '../../../../Layout';

// Good:😎
import { Footer, Header } from '@components/Layout';






5. Make use of array methods




const data = [1,2,10]
const isIncludedNumber2 = data.includes(2);
const isIncludedNumber2Or3 = data.some((item) => item === 2 || item === 3);
const number3= data.find((item) => item === 3);
const numbersLargerThan2 = data.filter((item) => item > 2);
const totalNumber = data.reduce((sum, num) => sum + num, 0);






6. Centerize how to manage unique values of the service




  • If values defined specifically for the service are written directly into the code, it becomes difficult to understand.

  • Is the code written in a way that prevents misunderstandings?




// NG🤔 status: What does the 0 mean?
const CheckStatus = (status: number) => {
if (status === 0) {
return true;
}
return false;
};

// Good🥴
const Status = {
Invalid: 0,
Valid: 1,
} as const;

type StatusLiteral = typeof Status[keyof typeof Status]; // 0 | 1

const CheckStatus = (status: StatusLiteral) => {
if (status === Status.Invalid) {
return true;
}
return false;
};



Ähnliche Beiträge
🔍 Verwandte News

Auch interessante Nachrichten React.js ~Clean Code Practical Use~

Thematisch verwandte Begriffe: Reactjs, Clean, Code, Practical · 6 Treffer

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Zum Aktualisieren ziehen
ZERO-DAY CVE-2026-17636 | IBM Financial Transaction Manager (FTM) for RedHat OpenShift could allow…
Advisory →
TTS Reader • tsecurity.de Voice
tsecurity.de Icon
tsecurity.de App
Offline-Lesen, Eilmeldungen & 0ms Ladezeit

Installiere tsecurity.de direkt auf deinen Home-Bildschirm für das ultimative Vollbild-Magazinerlebnis ohne Browser-Leisten.

Nächster Beitrag
Themen-Radar & Intelligence Matrix
Echtzeit-Taxonomie nach Angriffsvektoren & Plattformen

tsecurity.de Live Threat Radar

🔴 LIVE RADAR
MONITORING
AKTIV
CVE-DATENBANK
LIVE
🔍
Community Radar & Live Chat
Sentinel Bot online • Live-Stream
Dein Cluster: Security Explorer
Match:
lädt…
Verbindung zum Community-Stream wird aufgebaut...
Bearbeitungsmodus — Senden überschreibt deine Nachricht
Community-Puls — was gerade passiert
lädt…
Aktivitäten deiner Analysten
lädt…
Neues Thema oder Eilmeldung einreichen

Reiche interessante Links, Zero-Days oder Debatten ein. Die Community entscheidet per Upvote über die Veröffentlichung.

Heiß diskutierte Einreichungen
🔖 Gespeicherte Artikel
📂 Keine gespeicherten Artikel vorhanden.
Zurück Ziehen Vor
Links: vorheriger Artikel Rechts: nächster Artikel unten: schließen
News NIS-2 Frühwarnung Tier-1 Intel ⏱️ 3 Min vor 10 Min
Artikeldaten werden geladen...

Zurück: vorheriger Vor: nächster
↗ Original-Quelle
Social Reaktionen Deine Reaktion zählt
Einstufung & Relevanz-Poll 0 Stimmen
In sozialen Netzwerken teilen 1-Klick