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 خواهند داشت.