dev-resources.site
for different kinds of informations.
Mastering React: Best Practices for Cleaner and More Efficient Code
āĻāĻ āĻāĻ°ā§āĻāĻŋāĻā§āĻ¯āĻžāĻ˛ āĻ āĻāĻŽāĻ°āĻž React āĻāĻ° āĻāĻŋāĻā§ best practice āĻ¨āĻŋā§ā§ āĻāĻĨāĻž āĻŦāĻ˛āĻŦā§ āĨ¤
1. Destructuring and Spread Operator for Props:
React component āĻ āĻāĻāĻžāĻ§āĻŋāĻ prop āĻ°āĻŋāĻ¸āĻŋāĻ āĻāĻ°āĻ˛ā§ āĻāĻŽāĻ°āĻž āĻ¸ā§āĻā§āĻ˛ā§ destructure āĻāĻ°ā§ āĻāĻāĻ āĻāĻ°āĻ˛ā§ āĻā§āĻĄ āĻāĻ° readability and efficiency āĻŦā§ā§ā§ āĻ¯āĻžā§ āĨ¤
const MyComponent = ({ prop1, prop2, prop3, ...restProps }) => {
// Component logic here
return <ChildComponent {...restProps} />;
};
āĻāĻ example āĻ, āĻĢāĻžāĻāĻļāĻ¨ āĻĒā§āĻ¯āĻ°āĻžāĻŽāĻŋāĻāĻžāĻ° āĻ props destructure āĻāĻ°ā§ āĻ¨ā§ā§āĻžāĻ° āĻāĻžāĻ°āĻ¨ā§ āĻ¸āĻšāĻā§āĻ āĻāĻŽāĻ°āĻž āĻŦā§āĻāĻ¤ā§ āĻĒāĻžāĻ°āĻŋ āĻāĻ āĻāĻŽā§āĻĒā§āĻ¨ā§āĻ¨ā§āĻāĻāĻŋ āĻāĻŋ āĻāĻŋ props āĻāĻ° āĻāĻĒāĻ° dependent.
2. Conditional Rendering with Ternary Operators:
āĻāĻŽāĻ°āĻž āĻ¯āĻāĻ¨ āĻāĻ¨ā§āĻĄāĻŋāĻļāĻ¨āĻžāĻ˛āĻŋ āĻā§āĻ¨ āĻāĻŽā§āĻĒāĻ¨ā§āĻ¨ā§āĻ āĻ°ā§āĻ¨ā§āĻĄāĻžāĻ° āĻāĻ°āĻŋ āĻ¤āĻāĻ¨ if-else statement āĻāĻāĻ āĻ¨āĻž āĻāĻ°ā§ āĻāĻŽāĻ°āĻž ternary āĻāĻāĻ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°āĻŋ, āĻāĻ¤ā§ āĻāĻŽāĻžāĻĻā§āĻ° āĻā§āĻĄ āĻ
āĻ¨ā§āĻ āĻā§āĻ˛āĻŋāĻ¨ āĻāĻŦāĻ āĻ°āĻŋāĻĄā§āĻŦāĻ˛ āĻšāĻŦā§ āĨ¤
const MyComponent = ({ isLoggedIn }) => {
return isLoggedIn ? <UserDashboard /> : <Login />;
};
āĻāĻ example āĻ, āĻāĻāĻāĻžāĻ° āĻ¯āĻāĻ¨ āĻ˛āĻāĻŋāĻ¨ āĻāĻ°āĻž āĻĨāĻžāĻāĻŦā§ āĻ¤āĻāĻ¨ āĻāĻŽāĻ°āĻž UserDashboard āĻāĻŦāĻ āĻ¯āĻāĻ¨ āĻ˛āĻāĻŋāĻ¨ āĻ¨āĻž āĻĨāĻžāĻāĻŦā§ āĻ¤āĻāĻ¨ Login āĻāĻŽā§āĻĒāĻ¨ā§āĻ¨ā§āĻ āĻā§ āĻ°ā§āĻ¨ā§āĻĄāĻžāĻ° āĻāĻ°āĻŦ ternary operator āĻāĻāĻ āĻāĻ°ā§ āĨ¤
3. React Fragments for Cleaner JSX:
āĻāĻŽāĻ°āĻž āĻ¯āĻāĻ¨ āĻāĻāĻāĻž āĻāĻŽā§āĻĒāĻ¨ā§āĻ¨ā§āĻ āĻ āĻāĻ°āĻ āĻāĻŋāĻā§ child component āĻāĻāĻ āĻāĻ°āĻŋ āĻ¤āĻāĻ¨ āĻ¸ā§āĻā§āĻ˛ā§ āĻāĻāĻāĻž wrapper div āĻĻāĻŋā§ā§ wrap āĻ¨āĻž āĻāĻ°ā§ āĻāĻŽāĻ°āĻž react fragments āĻāĻāĻ āĻāĻ°ā§ āĻāĻŽāĻžāĻĻā§āĻ° āĻā§āĻĄ āĻāĻ°ā§ āĻŦā§āĻļāĻŋ āĻā§āĻ˛āĻŋāĻ¨ āĻāĻŦāĻ āĻ°āĻŋāĻĄā§āĻŦāĻ˛ āĻāĻ°ā§ āĻĢā§āĻ˛āĻ¤ā§ āĻĒāĻžāĻ°āĻŋ āĨ¤
const MyComponent = () => (
<>
<Header />
<MainContent />
<Footer />
</>
);
4. PropTypes and Default Props:
āĻāĻāĻāĻž component āĻ¯ā§ props āĻā§āĻ˛ā§ āĻ°āĻŋāĻ¸āĻŋāĻ āĻāĻ°ā§ āĻ¸ā§āĻā§āĻ˛ā§āĻ° āĻāĻžāĻāĻĒ āĻĄāĻŋāĻā§āĻ˛ā§ā§āĻžāĻ° āĻāĻ°ā§ āĻĻā§ā§āĻžāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻāĻ° āĻĄāĻŋāĻĢāĻ˛ā§āĻ props āĻ¸ā§āĻ āĻāĻ°ā§ āĻāĻŽāĻ°āĻž development āĻ¸ā§āĻā§āĻ āĻāĻ āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻ°āĻ° āĻā§āĻ˛ā§ āĻĄāĻŋāĻā§āĻā§āĻ āĻāĻŦāĻ āĻšā§āĻ¯āĻžāĻ¨ā§āĻĄāĻ˛ āĻāĻ°ā§ āĻĢā§āĻ˛āĻ¤ā§ āĻĒāĻžāĻ°āĻŋ āĨ¤ āĻāĻ¤ā§ āĻāĻŽāĻžāĻĻā§āĻ° development āĻāĻžāĻāĻŽ āĻ
āĻ¨ā§āĻ āĻāĻŽā§ āĻāĻ¸ā§ āĨ¤
import PropTypes from 'prop-types';
const MyComponent = ({ name, age }) => {
// Component logic here
};
MyComponent.propTypes = {
name: PropTypes.string.isRequired,
age: PropTypes.number,
};
MyComponent.defaultProps = {
age: 25,
};
āĻāĻāĻžā§āĻžāĻ āĻāĻ°āĻāĻŽ āĻāĻ°ā§ āĻ āĻ¨ā§āĻ āĻŦā§āĻ¸ā§āĻ āĻĒā§āĻ°ā§āĻ¯āĻā§āĻāĻŋāĻ¸ āĻāĻā§ āĻ¯āĻž āĻĢāĻ˛ā§ āĻāĻ°ā§ āĻāĻŽāĻ°āĻž āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻŽāĻžāĻĻā§āĻ° āĻā§āĻĄ āĻŦā§āĻ āĻā§ āĻā§āĻ˛āĻŋāĻ¨, āĻ°āĻŋāĻĄā§āĻŦāĻ˛ āĻāĻŦāĻ Efficient āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°āĻŋ āĨ¤ āĻ§āĻ¨ā§āĻ¯āĻŦāĻžāĻĻ āĨ¤
Featured ones: