-
Notifications
You must be signed in to change notification settings - Fork 14
Декоратор @system
Andrey Kobets edited this page Nov 17, 2021
·
5 revisions
Декоратор @system
позволяет создавать свойства компонента, изменение которых не приводит к обновлению шаблона.
По своему API декоратор полностью идентичен @field
. Однако, системные свойства инициализируются до входных параметров или @field
свойств, поэтому при инициализации мы не можем ссылаться на их значения, но мы можем использовать sync.link
для связи свойств или хук beforeDataCreate
.
import iBlock, { component, prop, system, hook } from 'super/i-block/i-block';
export * from 'super/i-block/i-block';
@component()
export default class bInput extends iBlock {
@prop(String)
valueProp: string = '';
@system({
type: String,
init: (o) => o.sync.link()
})
value!: string;
}
Несмотря на то, что изменение @system
поля не приводит к перерендеру шаблона, у нас по прежнему может быть необходимость следить за изменениями этого поля из кода компонента. Сделать это можно с помощью тех же декораторов @watch
, @field
и т. д.