Ecme logoEcme logo
داشبورد
    فروشگاه آنلاین
    پروژه
    بازاریابی
    تحلیل
مفاهیم
    هوش مصنوعی
      گفتگو
      تصویر
    پروژه‌ها
      تابلوی اسکرام
      فهرست
      جزئیات
      وظایف
      مسائل
    مشتریان
      فهرست
      ویرایش
      ایجاد
      جزئیات
    محصولات
      فهرست
      ویرایش
      ایجاد
    سفارش‌ها
      فهرست
      ویرایش
      ایجاد
      جزئیات
    حساب کاربری
      تنظیمات
      سابقه فعالیت
      نقش‌ها و دسترسی‌ها
      تعرفه‌ها
    مرکز راهنمایی
      مرکز پشتیبانی
      مقاله
      ویرایش مقاله
      مدیریت مقاله
    تقویم
    مدیریت فایل
    ایمیل
    گفتگو
اجزای رابط کاربری
    عمومی
      دکمه
      شبکه
      تایپوگرافی
      نمادها
    بازخورد
      هشدار
      پنجره گفتگو
      منوی کشویی
      نوار پیشرفت
      پیش‌نمایش
      نشانگر بارگذاری
      پیام موقت
    نمایش اطلاعات
      تصویر کاربر
      نشانک
      تقویم
      کارت‌ها
      جدول
      برچسب
      خط زمان
      راهنمای ابزار
    فرم‌ها
      کادر انتخاب
      انتخابگر تاریخ
      کنترل‌های فرم
      ورودی
      گروه ورودی
      دکمه رادیویی
      بخش
      انتخابگر
      کلید دوحالته
      ورودی زمان
      بارگذاری
    ناوبری
      منوی کشویی
      منو
      صفحه‌بندی
      گام‌ها
      زبانه‌ها
    نمودار
      نمودارها
      نقشه‌ها
احراز هویت
    ورود به سیستم
      ساده
      کناری
      دوبخشی
    ثبت‌نام
      ساده
      کناری
      دوبخشی
    بازیابی رمز عبور
      ساده
      کناری
      دوبخشی
    بازنشانی رمز عبور
      ساده
      کناری
      دوبخشی
    تایید رمز یکبار مصرف
      ساده
      کناری
      دوبخشی
سایر
    دسترسی غیرمجاز
    صفحه فرود
راهنما
    مستندات
    اجزای اشتراکی
    ابزارها
    تاریخچه تغییرات
حق نشر © 2026 Ecme تمامی حقوق محفوظ است.
شرایط و ضوابط | حریم خصوصی و سیاست
شروع کار
مقدمهنصبتل‌ویند سی‌اس‌اسسی‌اس‌اسشروع کنندهتایپ‌اسکریپتبه‌روزرسانی
توسعه
سرور توسعهمتغیرهای محیطیساختار پوشهمسیریابیایجاد صفحه جدیدیکپارچه‌سازی APIاحراز هویتمدیریت وضعیت
پیکربندی
پیکربندی اپچیدمان‌هاپیکربندی ناوبریتم‌سازیبین‌المللی‌سازیحالت تاریک/روشنجهتپیکربندی تم کلی
استقرار
ساخت تولید
دیگر
منابع و اعتبارات

مدیریت وضعیت

در این الگو، Zustand را برای مدیریت حالت سمت کلاینت یکپارچه کرده‌ایم. Zustand یک راه حل مدیریت حالت کوچک، سریع، و مقیاس‌پذیر است که به شما اجازه می‌دهد تا حالت‌های компонنت‌های سمت کلاینت خود را به شیوه‌ای ساده و کارآمد مدیریت کنید.

ما از Zustand برای مدیریت برخی از حالت‌های هسته‌ای در دمو استفاده می‌کنیم، اما کاملاً اختیاری است که شما در پروژه‌های خود از آن استفاده کنید. اگر ترجیح می‌دهید از کتابخانه مدیریت حالت دیگری یا حتی حالت داخلی ری‌اکت استفاده کنید، می‌توانید به راحتی به آنچه که بیشترین نیاز شما را برآورده می‌کند، تغییر دهید.

ایجاد حالت Zustand

ایجاد یک فروشگاه Zustand ساده است. زیر یک مثال از چگونگی ایجاد یک حالت جهانی برای مدیریت یک شمارنده ساده است:

import create from 'zustand'

type CouterState = {
    count: number
}

type CouterAction = {
    increaseCount: () => void
    decreaseCount: () => void
}

// فروشگاه را تعریف کنید
const useCounterStore = create<CouterState & CouterAction>((set) => ({
    count: 0,
    increaseCount: () => set((state) => ({ count: state.count + 1 })),
    decreaseCount: () => set((state) => ({ count: state.count - 1 })),
}))

export default useCounterStore

در این مثال، ما یک فروشگاه با یک حالت count و دو عمل: increaseCount و decreaseCount ایجاد کرده‌ایم. این اعمال حالت را با افزایش یا کاهش count به روز می‌کنند.

استفاده از حالت Zustand در یک کامپوننت

یکبار که فروشگاه را ایجاد کرده‌اید، استفاده از آن در یک کامپوننت ساده است. اینجا چگونگی یکپارچه کردن useCounterStore در یک کامپوننت ری‌اکت است:

import useCounterStore from './path/to/store'

const Counter = () => {
    const { count, increaseCount, decreaseCount } = useCounterStore()

    return (
        <div>
            <h1>شمارنده: {count}</h1>
            <button onClick={increaseCount}>افزایش</button>
            <button onClick={decreaseCount}>کاهش</button>
        </div>
    )
}

export default Counter

در این کامپوننت، ما از hook useCounterStore برای دسترسی به حالت count و دو عمل استفاده می‌کنیم. UI به‌طور خودکار هر زمان که حالت تغییر کند، به روز می‌شود، و دکمه‌ها به کاربر اجازه می‌دهند تا با حالت تعامل کند.

این فقط یک مثال پایه‌ای است تا شما را شروع کند. Zustand انعطاف‌پذیر است و می‌تواند برای سناریوهای مدیریت حالت پیچیده‌تر به medida که برنامه شما رشد می‌کند، استفاده شود. اگر می‌خواهید استفاده پیشرفته‌تر را کشف کنید، ما توصیه می‌کنیم که مستندات رسمی Zustandرا بررسی کنید.