Опции: Отрисовка
template
Строка шаблона для компонента.
Тип
tsinterface ComponentOptions { template?: string }
Подробности
Шаблон, предоставленный с помощью опции
template
, будет скомпилирован "на лету" во время выполнения. Это поддерживается только при использовании сборки Vue, включающей компилятор шаблонов. Компилятор шаблонов НЕ включен в сборки Vue, в названии которых присутствует словоruntime
, например,vue.runtime.esm-bundler.js
. Более подробную информацию о различных сборках можно найти в руководство по выбору файла сборки.Если строка начинается с
#
, то она будет использована в качествеquerySelector
и в качестве строки шаблона будет использоватьсяinnerHTML
выбранного элемента. Это позволяет создавать исходный шаблон с использованием нативных элементов<template>
.Если в том же компоненте присутствует опция
render
, тоtemplate
будет проигнорирован.Если в корневом компоненте приложения не указана опция
template
илиrender
, Vue попытается использоватьinnerHTML
смонтированного элемента в качестве шаблона.Примечание о безопасности
Используйте только те источники шаблонов, которым можно доверять. Не используйте в качестве шаблона содержимое, предоставленное пользователем. Подробнее об этом см. в Руководстве по безопасности.
render
Функция, программно возвращающая виртуальное DOM-дерево компонента.
Тип
tsinterface ComponentOptions { render?(this: ComponentPublicInstance) => VNodeChild } type VNodeChild = VNodeChildAtom | VNodeArrayChildren type VNodeChildAtom = | VNode | string | number | boolean | null | undefined | void type VNodeArrayChildren = (VNodeArrayChildren | VNodeChildAtom)[]
Подробности
render
- это альтернатива строковым шаблонам, позволяющая использовать всю программную мощь JavaScript для объявления вывода компонента на экран.Предварительно скомпилированные шаблоны, например, в однофайловых компонентах, компилируются в опцию
render
во время сборки. Если в компоненте присутствуют иrender
, иtemplate
, тоrender
будет иметь больший приоритет.См. также
compilerOptions
Настройка параметров runtime компилятора для шаблона компонента.
Тип
tsinterface ComponentOptions { compilerOptions?: { isCustomElement?: (tag: string) => boolean whitespace?: 'condense' | 'preserve' // по умолчанию: 'condense' delimiters?: [string, string] // по умолчанию: ['{{', '}}'] comments?: boolean // по умолчанию: false } }
Подробности
Эта опция конфигурации учитывается только при использовании полной сборки (т.е. автономного
vue.js
, который может компилировать шаблоны в браузере). Она поддерживает те же опции, что и на уровне приложения app.config.compilerOptions, и имеет более высокий приоритет для текущего компонента.См. также app.config.compilerOptions
slots
- Поддерживается только в версии 3.3+.
Опция для типизации при использовании слотов в функциях рендеринга.
Подробности
Значение этой опции во время выполнения не используется. Фактические типы должны быть объявлены через приведение типов с помощью помощника типа
SlotsType
:tsimport { SlotsType } from 'vue' defineComponent({ slots: Object as SlotsType<{ default: { foo: string; bar: number } item: { data: number } }>, setup(props, { slots }) { expectType< undefined | ((scope: { foo: string; bar: number }) => any) >(slots.default) expectType<undefined | ((scope: { data: number }) => any)>( slots.item ) } })