Тема: Vue' thread 1
Показать сообщение отдельно
  #69 (permalink)  
Старый 23.10.2016, 13:12
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 19.11.2010
Сообщений: 4,338

Сообщение от cyber Посмотреть сообщение
а можно по подробней, как он генирирует компонент?)
Ну сперва на этапе трансляции я заменяю:

foo: String = '1';


На

@prop({type: String, default: '1'})
foo;


А дальше главный декоратор model, которым врапится компонент, создаёт экземпляр класса и на его основе делает Vue.component. Конструктор базового класса возвращает объект, где геттеры/сеттеры заменены на компьютеды, поля с декораторыми @prop и @field на props и data(). Методы вставляются в methods, а зарезирвированные слова типа mounted как есть. Также статики становятся свойствами $options Vue. В общем всё довольно просто и главное, что работает автокомплит и super. Еще я для сеттеров и геттеров генерю методы, например fooGetter, чтобы можно было вызывать их через super.
__________________
kobezzza
code monkey
Ответить с цитированием