smalljs$molПоиск⌘ KДокументацияПесочницаСравнениеЭкосистемаО проектеRU
ВьюGetting StartedВведениеМентальная модельБыстрый стартОт TypeScript к view.treeСтруктура проектаИнструментарийEssentialsУстановкаВьюСостояние и реактивностьРоутингРендерингТестированиеДеплойРешение проблемDataЗагрузка данныхСхемы данныхГипер БазаMoreВитринаИз React, Vue и SvelteСборник рецептовAdvancedПлагиныМетаданные модуляОфлайнGhost-вьюAboutЧастые вопросыКомандаРелизыAPI$mol_button_major$mol_button_minor$mol_string$mol_number$mol_text$mol_paragraph$mol_list$mol_row$mol_link$mol_check$mol_switch$mol_select$mol_scroll$mol_page$mol_pick

Вью

Вью — это компонент: узел в дереве интерфейса со своей разметкой, поведением и стилями. Эта глава о том, как вью объявляются, связываются с логикой, композируются и переиспользуются.Если view.tree для вас в новинку: От TypeScript к view.tree собирает один компонент дважды — рукописным классом и деревом — и показывает код, в который дерево компилируется. Прочтите сначала её, если синтаксис ниже выглядит новым языком, а не сокращением.

Три файла, один компонент

Компонент $my_card живёт в my/card/ и описывается максимум тремя файлами, у каждого — своя роль:card.view.treeчто представляет собой компонент: его структура и связывания по умолчанию.card.view.tsкак он ведёт себя: методы TypeScript, реактивное состояние.card.view.css.ts — как он выглядит: типизированные стили, проверяемые компилятором.Разделение структуры, поведения и стиля сделано намеренно — каждый файл остаётся маленьким и читаемым, а разметка никогда не переплетается с логикой.Обязательного среди трёх нет ни одного. Уберите card.view.tree и напишите класс прямо в namespace $: структура станет обычными методами, а компонент продолжит работать. Дальше в главе используется дерево, потому что так структура выглядит, когда обвязку генерируют за вас.

Язык view.tree

view.tree описывает структуру декларативно. Отступ — это вложенность; закрывающих тегов нет.1$my_card $mol_view2 sub /3 <= Title $mol_view4 sub / <= title \5 <= Body $mol_view6 sub / <= text \Каждое имя с большой буквы (Title, Body) становится настоящим свойством, к которому можно обратиться, переопределить или стилизовать. Каждое связывание с маленькой буквы (title, text) становится значением, которое можно вычислить в .view.ts.

Связывание свойств

Два оператора соединяют свойство с его источником:<= в одну сторону: ребёнок читает значение у владельца.<=> в обе стороны: значение течёт в обоих направлениях — используется для полей ввода.1$my_form $mol_view2 sub /3 <= Field $mol_string4 value? <=> text? \Здесь value поля ввода и text владельца остаются синхронными автоматически: пишете в поле — обновляется text; задаёте text в коде — поле это отражает.

Связь с поведением

Связывание без значения по умолчанию реализуется в .view.ts. Класс наследует сгенерированную базу с тем же именем:1namespace $.$$ {2 export class $my_card extends $.$my_card {3 @ $mol_mem4 title() {5 return 'Untitled'6 }7 }8}
Редактировать эту страницу на GitHubБыло полезно?ДаНетНазадУстановкаВперёдСостояние и реактивность
На этой страницеТри файла, один компонентЯзык view.treeСвязывание свойствСвязь с поведениемАтрибуты и тип элементаСписки и ключевые вьюУсловные вьюКомпозиция и переиспользованиеДальше
Type to search the documentation.