تابستون داره تموم میشه ها، فرصت‌ها محدودن کلی آفر جذاب در کمپین تابستون🔥👇
۰ ثانیه
۰ دقیقه
۰ ساعت
۱ علیرضا بابایی
بررسی فرایند وارد شدن اطلاعات داخل آرایه listener
جامعه ری اکت ایجاد شده در ۱۳ تیر ۱۴۰۰

سلام استاد

یک متغییر listener  تعریف کردید و این متغییر رو به عنوان ورودی به تابع subscribe پاس دادید و داخل این تابع listener داخل listener پوش کردید ؛ شاید اشتباه میکنم ولی اینطور متوجه شدم.

انگار لوپ اتفاق افتاده ، یه تابع خالی داخل یه تابع خالی پوش شده این چطور داره به تغییر state گوش میده؟

    const subscribe = (listener) => {
        listeners.push(listener)
        return () => {
            listeners = listeners.filter(l => l !== listener)
        }
    }

سلام

داخل createStore یک متغیر listeners تعریف کردم که در واقع یک آرایه هست برای نگهداری توابع listener

همچنین داخلی createStore یک تابع تعریف کردم به اسم subscribe  که در ورودی یک تابع رو دریافت میکنه که حالا اینجا من اسمش رو گذاشتم listener و شما هر اسمی که دوست داشته باشی میتونی بزاری (فکر کنم این رو با اون listeners یکمی اشتباه گرفته باشی) این تابع ۲ تا کار انجام میده اون تابعی رو که در ورودی دریافت کرده اضافه میکنه به آرایه listeners  و همچنین یک تابع return میکنه که میتونیم با استفاده از این تابع که برگشت داده شده مقداری رو که به آرایه listeners  اضافه کردیم رو حذف بکنیم

یک تابع دیگه هم داریم به اسم dispatch که هر بار فراخوانی میشه همه توابعی رو که داخل listeners هستند رو فرخوانی میکنه و همه جاهایی که نیاز هست متوجه تغییر state میشن

 

هر بخشی که نیاز به توضیح اضافه داره لطفا بگو که بیشتر توضیح بدم

مجتبی سوری ۱۵ تیر ۱۴۰۰، ۱۶:۰۱