Якщо ви прийшли з React чи Vue, перші дні в $mol минають у пошуках того, чого тут немає: computed, watch, useEffect, onMounted, fetch у хуку життєвого циклу. Вони не заховані десь в API — для них просто немає місця в моделі. Ця сторінка — п'ятихвилинна версія цієї моделі. Прочитайте її перед Видами і повертайтеся, коли чергове знайоме ім'я не знайдеться.
Ніщо не обчислюється, доки цього хтось не прочитає. Подання малюється, читаючи свої властивості; кожна властивість читає те, що потрібно їй; ланцюг залежностей збирається з цих читань сам. Немає підписки, яку треба оголосити, і немає watch, який треба зареєструвати: читання і є підпискою.1$my_profile$mol_view2 sub /3<= Name $mol_view4 sub /<= name \1namespace $.$${2export class $my_profileextends$.$my_profile{3@ $mol_mem4user(){5return this.$.$mol_fetch.json('https://api.example.com/me')as{name:string}6}7name(){8return this.user().name9}10}11}Рендеринг Name читає name(), name() читає user(), user() іде в мережу. Ніхто не розповідав поданню про запит і ніхто не розповідав запиту про подання. Коли user() змінюється, переобчислюється все, що його читало, і більше нічого.
Немає ні mounted, ні useEffect, ні created. Дані запитуються читанням властивості, а свої властивості подання читає тоді, коли малюється. Тож приклад вище завантажує користувача тієї миті, коли $my_profile з'являється на екрані, і не раніше. Коли подання йде з екрана, user() більше ніхто не читає, і комірка звільняється разом із поданням.Це і є вся заміна шаблону «завантажити на монтуванні»: подання просить те, що йому потрібно, а фреймворк вирішує, коли питати. Завантаження прив'язане не до події сторінки, а до того, що подання видно.
Один метод із необов'язковим аргументом — це водночас гетер, сетер, обчислюване значення і стан:1@ $mol_mem2count(next?:number){3return next??04}Виклик без аргументу читає, з аргументом — записує. @ $mol_mem перетворює метод на кешовану комірку, яка переобчислюється, коли змінилося щось із прочитаного нею. Обчислюване значення — це просто метод із @ $mol_mem, що читає інші методи. Спостерігач не потрібен: побічний ефект належить події, а обробник події — це метод, оздоблений @ $mol_action.1@ $mol_mem2doubled(){3return this.count()*24}56@ $mol_action7increment(){8this.count(this.count()+1)9}Редагувати цю сторінку на GitHubЦе було корисно?ТакНіНазадВступДаліПочаток роботиНа цій сторінціТягнемо, а не штовхаємоЖодного життєвого циклуВластивість — це коміркаСинхронний код, що вміє чекатиУсе — це перевизначенняЯк читати вихідникиІменаДаліType to search the documentation.