تنظیم مقادیر اولیه مختلف

به‌طور پیش‌فرض، در صورتی که یک مقدار به عنوان پارامتر به هوک useObserver پاس داده شود، آن مقدار به عنوان مقدار اولیه به تمامی متغیرهایی که از useObserver دریافت می‌شوند و قبلاً مقدار آن‌ها در استیت ذخیره نشده است، اختصاص داده می‌شود. در صورتی که نیاز به تنظیم مقادیر اولیه متفاوت برای هر متغیر دارید، می‌توانید از یکی از روش‌های زیر استفاده کنید:

1. مقادیر اولیه را به یکباره تعریف کنید:

اگر می خواهید مقادیر اولیه را برای همه متغیرها به طور همزمان تنظیم کنید، می توانید قبل از فراخوانی هوک useObserver آنها را مستقیما و با استفاده از متد set موجود در observer مقدار دهی کنید:

import { observer, useObserver } from 'rosma'; observer.set({ count: 10, count1: 20 }); export default function Counts() { const { count, setCount, count1, setCount1 } = useObserver(); return ( <> <button onClick={() => setCount(count + 1)}>{count}</button> <button onClick={() => setCount1(count1 + 1)}>{count1}</button> </> ); }
import { observer, useObserver } from 'rosma'; type State = { count: number; count1: number; }; observer.set<State>({ count: 10, count1: 20 }); export default function Counts() { const { count, setCount, count1, setCount1 } = useObserver<State>(); return ( <> <button onClick={() => setCount(count + 1)}>{count}</button> <button onClick={() => setCount1(count1 + 1)}>{count1}</button> </> ); }

در کد بالا، قبل از فراخوانی هوک useObserver ، مقادیر اولیه count و count1 را با استفاده از observer.set تنظیم می‌کنیم. این به ما امکان می‌دهد که متغیرها را بدون ارسال هیچونه آرگومان به هوک useObserver مقداردهی کرده و استفاده کنیم، و آن متغیرها مقادیر اولیه‌ای را خواهند داشت که با استفاده از observer.set مشخص کردیم.

2. مقادیر اولیه را به خود متغیر اختصاص دهید:

import { useObserver } from 'rosma'; export default function Counts() { const { count = 10, setCount, count1 = 20, setCount1 } = useObserver(); return ( <> <button onClick={() => setCount(count + 1)}>{count}</button> <button onClick={() => setCount1(count1 + 1)}>{count1}</button> </> ); }
import { useObserver } from 'rosma'; type State = { count: number; count1: number; }; export default function Counts() { const { count = 10, setCount, count1 = 20, setCount1 } = useObserver<State>(); return ( <> <button onClick={() => setCount(count + 1)}>{count}</button> <button onClick={() => setCount1(count1 + 1)}>{count1}</button> </> ); }

3. مقادیر اولیه را جداگانه تعریف کنید:

import { useObserver } from 'rosma'; export default function Counts() { const { count, setCount } = useObserver(10); const { count1, setCount1 } = useObserver(20); return ( <> <button onClick={() => setCount(count + 1)}>{count}</button> <button onClick={() => setCount1(count1 + 1)}>{count1}</button> </> ); }
import { useObserver } from 'rosma'; type State = { count: number; count1: number; }; export default function Counts() { const { count, setCount } = useObserver<State>(10); const { count1, setCount1 } = useObserver<State>(20); return ( <> <button onClick={() => setCount(count + 1)}>{count}</button> <button onClick={() => setCount1(count1 + 1)}>{count1}</button> </> ); }

پیش نمایش


در کد بالا، هوک useObserver را دوبار و به صورت جداگانه برای تعریف مقادیر اولیه مختلف برای count و count1 استفاده کردیم.

به طور کلی، گرفتن چندین متغیر از useObserver می‌تواند به مختصر و خوانا تر شدن کد شما کمک کند، و تنظیم مقادیر اولیه متفاوت برای هر متغیر با استفاده از روش‌هایی که در بالا توضیح داده شد، آسان است.

کلید واژه ها: رزما, useObserver, دریافت مقادیر, مقادیر اولیه, observer.set, هوک های ری اکت, بهینه سازی کد, خوانایی کد, مدیریت استیت, برنامه نویسی فرانت اند

قبلی: گرفتن همزمان چندین متغیر

بعدی: هوک useObserver