Hongmeng Next Class Attribute Observer V2

1. مقدمه
در توسعه Hongmeng Next، مشاهده ویژگی های کلاس برای مدیریت دولتی بسیار مهم است. این مقاله به طور مفصل معرفی خواهد شد@ObservedV2دکوراتورها و@Traceعملکردها، استفاده، محدودیتها و سناریوهای کاربردی دکوراتورها به توسعهدهندگان کمک میکند تا این دو دکوراتور را بهتر درک کنند و از آن برای مشاهده تغییرات ویژگی کلاس استفاده کنند و در نتیجه به مدیریت حالت کارآمدتری دست یابند.
2. مروری بر دکوراتورها
(1) عملکرد
@ObservedV2و@Traceدکوراتورها با هم برای دادن قابلیتهای مشاهده عمیق به کلاسها و ویژگیها استفاده میشوند، به طوری که کلاسها و ویژگیهای تزئینشده میتوانند هنگام تغییر مؤلفههای UI متناظر را بهروزرسانی کنند و توانایی چارچوب مدیریت حالت را برای مشاهده ویژگیهای شی کلاس افزایش دهند.
(2) پشتیبانی از نسخه
از API نسخه 12 پشتیبانی می شود@ObservedV2و@Traceدکوراتور.
(3) اقدامات احتیاطی
مدیریت وضعیت فعلی (نسخه آزمایشی V2) هنوز در حال توسعه است و توسعه دهندگان می توانند آن را امتحان کنند.
3. توضیحات دکوراتور
(1) دکوراتور کلاس @ObservedV2
- پارامتر: هیچکدام
- اثر: کلاس تزئینی که قبل از تعریف کلاس قرار می گیرد برای ایجاد اشیاء کلاس استفاده می شود تا کلاس قابلیت مشاهده شدن را داشته باشد.
(2) دکوراتور متغیر عضو @trace
- پارامتر: هیچکدام
- اثر: تزیین ویژگی های اعضا در کلاس انواع ویژگی ها می تواند عدد، رشته، بولی، کلاس، آرایه، تاریخ، نقشه، مجموعه و غیره باشد تا تغییرات در ویژگی های تزئین شده مشاهده شود.
4. مکانیسم تغییر را رعایت کنید
(1) شرایط بهروزرسانی UI را فعال کنید
استفاده کنید@ObservedV2در کلاس تزئین شده است@Traceهنگامی که مقدار مشخصه تزئین شده تغییر می کند، مؤلفه رابط کاربری محدود شده به ویژگی فعال می شود تا به روز شود.
(2) قابلیت مشاهده در سناریوهای مختلف
-
سناریوهای کلاس تودرتو
- هنگامی که یک ویژگی در یک کلاس تودرتو است
@Traceکلاس های تزئین شده و تو در تو@ObservedV2هنگام تزئین، تغییرات در این ویژگی این قابلیت را دارد که باعث ایجاد یک تجدید UI شود. - به عنوان مثال، در
Pencilکلاس (بودن@ObservedV2تزئینات)، خواصlength(لحاف@Traceهنگامی که دکوراسیون) تغییر می کند، اجزای رابط کاربری مرتبط به روز می شوند. اما اگرsonمتغیرها (متغیرهای غیر حالتی) دوباره تخصیص داده می شوند، حتی اگرlengthاگر ویژگی ها تغییر کنند، UI رفرش نمی شود.
- هنگامی که یک ویژگی در یک کلاس تودرتو است
-
سناریوی کلاس وراثت
- چه در یک کلاس پایه یا یک کلاس ارثی،
@Traceتغییرات در ویژگیهای دکوراسیون را میتوان مشاهده کرد و باعث تازهسازی UI میشود. - همانطور که در
GrandFatherکلاس (بودن@ObservedV2تزئینات)، خواصage(لحاف@Traceدکوراسیون)، درSonکلاس یاCousinتغییر در نمونه کلاسageمقدار، UI بر این اساس تازه می شود.
- چه در یک کلاس پایه یا یک کلاس ارثی،
-
صحنه صفت استاتیک
- در کلاس
@Traceهنگامی که ویژگی های استاتیک دکوراسیون تغییر می کند، تازه سازی UI نیز می تواند فعال شود.
- در کلاس
(3) مشاهده انواع توکار
@Traceهنگام تزئین انواع داخلی (مانند آرایه، تاریخ، نقشه، مجموعه و غیره)، می توانید تغییرات ایجاد شده توسط API های مربوطه را مشاهده کنید.
|نوع|API تغییر قابل مشاهده|
|—|—|
|آرایه|فشار، پاپ، شیفت، جابجایی، اسپلایس، کپی در داخل، پر کردن، معکوس، مرتب سازی|
|تاریخ|setFullYear، setMonth، setDate، setHours، setMinutes، setSeconds، setMilliseconds، setTime، setUTCFullYear، setUTCMonth، setUTCDate، setUTCHours، setUTCMinutes، setUTCSseconds، setUTCMilliseconds|
|نقشه|تنظیم،پاک کردن،حذف|
|تنظیم|افزودن،پاک کردن،حذف|
5. از محدودیت استفاده کنید
(1) محدودیت بازخوانی UI
خیر@Traceویژگیهای عضو تزئین شده که در رابط کاربری استفاده میشوند، نمیتوانند بازخوانی UI را فعال کنند.
(2) محدودیت در استفاده از دکوراتورها
-
@Traceوقتی نمیشه استفاده کرد@ObservedV2در کلاس تزئین شده. -
@Traceدر ساختار قابل استفاده نیست. -
@ObservedV2،@Traceنمی توان با آن استفاده کرد@Observed،@Trackمخلوطش کن - استفاده کنید
@ObservedV2و@Traceکلاس های تزئین شده را نمی توان با آنها ترکیب کرد@Stateمنتظر استفاده ترکیبی از دکوراتورهای V1 باشید که از آنها به ارث رسیده است@ObservedV2کلاس ها را نمی توان با آنها ترکیب کرد@Stateصبر کنید تا دکوراتورهای V1 با هم مخلوط شوند. -
@ObservedV2نمونههای کلاس در حال حاضر از سریالسازی با استفاده از JSON.stringify پشتیبانی نمیکنند.
6. سناریوهای استفاده
(1) صحنه تو در تو
در ساختار کلاس تودرتو مانندPencilکلاس (بودن@ObservedV2دکوراسیون) درlengthصفت (بوده@Traceدکوراسیون)، تغییرات آن میتواند باعث تازهسازی اجزای رابط کاربری مرتبط شود. با این حال، اگر متغیر خارجی غیر حالتی دوباره تخصیص داده شود، رابط کاربری قادر به مشاهده تغییرات ویژگی داخلی نخواهد بود.
(2) سناریوهای وراثت
در یک رابطه ارثی طبقاتی، مانندGrandFatherکلاس (بودن@ObservedV2دکوراسیون)ageصفت (بوده@Traceدکوراسیون)، درSonکلاس یاCousinتغییر در نمونه کلاسageمقدار، UI تازه می شود.
(3) انواع مختلف دکوراسیون
-
آرایه نوع پایه:
@Traceتزئین کنیدArrدر کلاسnumberArrآرایه(@ObservedV2تزئین کنیدArrکلاس)، تغییرات را می توان هنگام کار با استفاده از API آرایه پشتیبانی شده مشاهده کرد. -
آرایه ای از اشیاء:
@Traceتزئین کنیدInfoدر کلاسpersonListآرایه شی (@ObservedV2تزئین کنیدInfoکلاس) وPersonدر کلاسageویژگی، زمانی کهpersonListیاageتغییرات در صورت تغییر قابل مشاهده است. -
نوع نقشه:
@Traceتزئین کنیدInfoدر کلاسmemberMap(@ObservedV2تزئین کنیدInfoکلاس)، تماس بگیریدset،clear،deleteهنگام انتظار برای API می توان تغییرات را مشاهده کرد.memberMapتکالیف نیز قابل مشاهده است.
7. خلاصه
@ObservedV2دکوراتورها و@Traceدکوراتورها به توسعه دهندگان Hongmeng Next قابلیت های مشاهده ویژگی های کلاس قدرتمند را ارائه می دهند، اما آنها باید به محدودیت های استفاده خود در حین استفاده توجه کنند و از آنها مطابق با سناریوهای مختلف به درستی استفاده کنند تا به مدیریت حالت کارآمد و پاسخ UI دست یابند. با توسعه مستمر چارچوب مدیریت دولتی، این دو دکوراتور نقش مهم تری در توسعه اپلیکیشن Hongmeng Next خواهند داشت.



