Skip to content

Instantly share code, notes, and snippets.

View h-agharezaei's full-sized avatar
🏠
Working from home

Hossein Agharezaei h-agharezaei

🏠
Working from home
View GitHub Profile
import { useState, useCallback } from "react";
function Button({ onClick }) {
console.log("🎯 دکمه رندر شد");
return <button onClick={onClick}>افزایش</button>;
}
export default function App() {
const [count, setCount] = useState(0);
import { useState, useMemo } from "react";
function ExpensiveCalculation({ count }) {
const result = useMemo(() => {
console.log("🔄 محاسبه مقدار جدید...");
return count * 2;
}, [count]); // فقط وقتی count تغییر کند، محاسبه اجرا می‌شود
return <p>Result: {result}</p>;
}
useEffect(() => {
console.log("Count updated:", count);
}, [count]); // حالا فقط زمانی که count تغییر کند اجرا می‌شود
import { useState, useEffect } from "react";
function Component() {
const [count, setCount] = useState(0);
const [text, setText] = useState("");
useEffect(() => {
console.log("Count updated:", count);
}, [count, text]); // مشکل: این اثر هر بار که count یا text تغییر کند اجرا می‌شود
import { useState } from "react";
function Counter() {
const [count, setCount] = useState(0);
return (
<div>
<p>Count: {count}</p>
<button onClick={() => setCount(count + 1)}>افزایش</button>
</div>
@h-agharezaei
h-agharezaei / react-memo-example.tsx
Created March 18, 2025 20:07
react-memo-example.tsx
import React, { useState, memo } from "react";
const ExpensiveComponent = memo(({ count }: { count: number }) => {
console.log("Rendered!");
return <div>Count: {count}</div>;
});
export default function App() {
const [count, setCount] = useState(0);
const [text, setText] = useState("");