Аргументы
Аргументы
Некоторые директивы могут принимать «аргумент», разделённый от названия директивы двоеточием. Например, директива v-bind
используется для реактивного обновления атрибутов HTML:
В данном случае href
— аргумент, указывающий директиве v-bind
связать атрибут href
элемента со значением выражения url
.
Другим примером будет директива v-on
, которая отслеживает события DOM:
В данном случае аргументом является тип события. Подробнее на обработке событий мы остановимся позднее.
Динамические аргументы
Начиная с версии 2.6.0, можно использовать JavaScript-выражение в аргументе директивы, заключив его в квадратные скобки:
Здесь attributeName
будет выполняться как выражение JavaScript, а его вычисленное значение использоваться в качестве финального значения аргумента. Например, если экземпляр Vue имеет в данных свойство attributeName
, значение которого равно "href"
, то это будет эквивалентно привязке v-bind:href
.
Таким же образом можно использовать динамические аргументы для привязки обработчика к динамическому имени события:
В этом примере, когда значение eventName
будет "focus"
, то обработчик v-on:[eventName]
будет эквивалентен v-on:focus
.
Ограничения значений динамического аргумента
Ожидается, что динамические аргументы в результате будут строкой, за исключением null
. Специальное значение null
можно использовать для явного удаления привязки. Любые другие нестроковые значения будут вызывать предупреждения.
Ограничения динамического выражения
Для выражений динамических аргументов есть синтаксические ограничения, поскольку некоторые символы, такие как пробелы и кавычки, являются недопустимыми внутри имён атрибутов HTML. Например:
Обойти это ограничение можно использованием выражения без пробелов или кавычек, или заменой комплексного выражения на вычисляемое свойство.
При использовании шаблонов в DOM (шаблонов, написанных непосредственно в HTML-файле), следует избегать именования ключей заглавными буквами, поскольку браузеры будут приводить имена атрибутов к строчным:
Last updated