кодесурса
«Вью

Привязки класса и стиля

script1adsense2code
script1adsense3code

Чаще всего нам требуется привязка данных при манипулировании списком классов элемента и его встроенными стилями. Поскольку оба они являются атрибутами, мы можем использовать директиву v-bind для их обработки: здесь наши выражения вычисляют только конечные строки.

Однако вмешательство в конкатенацию строк подвержено ошибкам и раздражает. Таким образом, Vue обеспечивает специальные улучшения, когда v-bind используется с классом и стилем. Выражения также оценивают объекты и массивы, а не только строки.

Связывание классов HTML

Синтаксис объекта

Мы можем динамически переключать классы, передавая объект в v-bind: class:

<div v-bind:class="{active: isActive}"></div>

Наличие активного класса определяется истинностью свойства данных isActive.

Несколько классов могут быть переключены, если в объекте будет больше полей, v-bind: class может сосуществовать с атрибутом простого класса:

<div class="static"
  v-bind:class="{active: isActive, 'text-danger': hasError}">
</div>

Со следующими данными:

data: {
  isActive: true,
  hasError: false
}
This will render:
<div class="static active"></div>

Список классов обновляется после изменения свойств данных. Например, когда hasError имеет значение false, список классов изменяется на статическую активную текстовую опасность.

Связанный объект не должен быть встроенным:

<div v-bind:class="classObject"></div>
data: {
  classObject: {
    active: true,'text-danger': false
  }
}

Кроме того, мы можем связать вычисляемое свойство, которое возвращает объект:

<div v-bind:class="classObject"></div>
data: {
  isActive: true,
  error: null
},
computed: {
  classObject: function () {
    return {
      active: this.isActive && !this.error,
      'text-danger': this.error && this.error.type ==='fatal'
    }
  }
}

Синтаксис массива

Чтобы применить список классов, мы можем передать массив в v-bind: class

<div v-bind:class="[activeClass, errorClass]"></div>
data: {
  activeClass: 'active',
  errorClass: 'text-danger'
}

Это делает:

<div class="active text-danger"></div>

Тернарное выражение может быть использовано для условного переключения класса:

<div v-bind:class="[isActive ? activeClass : '', errorClass]"></div>

Приведенный выше код будет применять activeClass, если isActive является правдивым, но всегда применяется errorClass.

Приведенный выше код может быть упрощен с использованием синтаксиса объекта:

<div v-bind:class="[{ active: isActive }, errorClass]"></div>

С компонентами

Я предполагаю, что вы знакомы с компонентами Vue для этого раздела.

Когда мы используем атрибут класса в пользовательском компоненте, классы будут добавлены к элементу роли компонента. Это не перезапишет классы в элементе.

Возьмем, к примеру, когда мы объявляем этот компонент:

Vue.component('my-component', {
  template: '>p class="foo bar">Hi</p>'
})

И мы также добавляем некоторые классы при использовании компонента:

<my-component class="baz boo"></my-component>

Это приводит к HTML ниже:

<p class="foo bar baz boo"<Hi</p>

Это также относится и к привязке классов:

<my-component v-bind:class="{ active: isActive }"></my-component>

HTML, который будет отображен, когда isActive is true, будет:

<p class="foo bar active">Hi</p>

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

Синтаксис объекта

v-bind имеет довольно простой синтаксис объекта - он почти как CSS, но это объект JavaScript. Для имени свойства CSS мы можем использовать либо kebab-case, либо camelCase:

<div v-bind:style="{ color: activeColor, fontSize: fontSize + 'px' }"></div>
data: {
  activeColor: 'red',
  fontSize: 30
}

Чаще всего для создания более чистого шаблона рекомендуется связать его непосредственно с объектом стиля:

<div v-bind:style="styleObject"></div>
data:{
  styleObject: {
    color:'red',
    fontSize:'13px'
  }
}

Синтаксис массива

Синтаксис массива для v-bind: style позволит нам применить несколько объектов стиля к элементу:

<div v-bind:style="[baseStyles, overridingStyles]"></div>

Авто-префиксы

Vue автоматически обнаруживает и добавляет соответствующие префиксы в свойства CSS, для которых требуются префиксы вендора в стиле v-bind :.

Несколько значений

Начиная с версии 2.3.0 мы можем предоставить массив из нескольких (с префиксом) значений для свойства стиля:
&div v-bind:style="{display: ['-webkit-box', '-ms-flexbox', 'flex'] }">>/div>

Приведенный выше фрагмент будет отображать только последнее значение в массиве, которое поддерживает браузер.

Новый контент: Composer: менеджер зависимостей для PHP , R программирования


script1adsense4code
script1adsense5code
disqus2code
script1adsense6code
script1adsense7code
script1adsense8code
buysellads2code