English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Заметки по изучению vue.js: привязка стиля и списка классов

数据绑定一个常见需求是操作元素的 class 列表和它的内联样式。因为它们都是 attribute,我们可以用 v-bind 处理它们:只需要计算出表达式最终的字符串。不过,字符串拼接麻烦又易错。因此,в Vue.js 专门增强了它。表达式的结果类型除了字符串之外,还可以是对象或数组。

一.绑定Class属性。

绑定数据用v-bind:命令,简写成:

语法:<div v-bind:class="{ active: isActive }"></div>。class后面的双引号里接受一个对象字面量/对象引用/数组作为参数,

这里,{active: isActive}是对象参数,active是class名,isActive是一个布尔值。下面是一个例子:

绑定对象字面量

html:

<div id="classBind">
<span :class="{warning:isWarning,safe:isSafe}" v-on:click="toggle">
Состояние:{{alert}}{{isSafe}}
</span>
</div>
//js
var app11=new Vue({
el:'#classBind',
data:{
isWarning:true,
alertList:['Красный сигнал тревоги','Снятие сигнала тревоги'],
alert:''
},
computed:{
isSafe:function(){
return !this.isWarning;
}
},
methods:{
toggle:function(){
this.isWarning=!this.isWarning;
this.alert= this.isWarning?this.alertList[0]:this.alertList[1];
}
}
});

css:

.warning{
color:#f24;
}
.safe{
color:#42b983;
}

При нажатии на текст состояния можно переключить текст и цвет

//Состояние: снятие сигнала тревоги true

//Состояние: красный сигнал тревоги false

Привязка объекта

Здесь привязанный объект можно записать в data Vue-инстанса, а в class="classObj " двойные кавычки содержат ссылку на объект classObj Vue-инстанса. classObj может быть放在 data или computed, если в computed, то функция classObj, соответствующая классу, должна возвращать объект, как показано ниже:

js:

var app11=new Vue({
el:'#classBind',
data:{
isWarning:true,
alertList:['Красный сигнал тревоги','Снятие сигнала тревоги'],
alert:''
},
computed: {
isSafe: function () {
return !this.isWarning;
},
classObj:function(){
return {
warning: this.isWarning,
safe:this.isSafe
}
}
},
methods:{
toggle:function(){
this.isWarning=!this.isWarning;
this.alert= this.isWarning?this.alertList[0]:this.alertList[1];
}
}
});

Привязка массива

html:

<div v-bind:class="classArray" @click="removeClass()">Удалить класс</div>

js

data: {
classArray:["big",'red"]
}
methods:{
removeClass:function(){
  this.classArray.pop();
}
}

css:

.big{
font-size:2rem;
}
.red{
color:red; 
}

Эффект, если нажать, чтобы удалить класс, вызывается функция removeClass, удаляется последнее значение массива classArray, сначала, удаляется 'red', цвет текста изменяется с красного на черный, еще раз нажать, удаляется 'big', размер текста уменьшается.

Двое: привязка внутрисетевого стиля

В этот момент я учусь по этой странице, рядом с документацией Vue API, и я продаю здесь, это ощущение действительно приятно o(^▽^)o

html

<div id="styleBind">
<span :style="{color:theColor,fontSize:theSize+'px'}" @click="bigger">styleBind</span>
</div>

css

Это не требует css...

js

var app12=new Vue({
el:'#styleBind',
data:{
theColor:'red',
theSize:14
},
methods:{
bigger:function(){
this.theSize+=2;
}
}
});

Кроме传入 объектных литералов, также можно передавать ссылки на объекты и массивы для V-bind:style

Вот что я хотел рассказать вам о заметках по изучению vue.js, связанном с绑ингом style и class, я надеюсь, что это поможет вам. Если у вас есть какие-либо вопросы, пожалуйста, оставьте комментарий, и я постараюсь ответить вам своевременно. Вновь хочу выразить благодарность всем за поддержку сайта呐喊 учебник!

Заявление: содержание этой статьи взято из Интернета, авторское право принадлежит автору, материал был предложен и загружен пользователями Интернета, этот сайт не обладает правом собственности, материал не был отредактирован вручную, и не несет ответственности за связанные с этим法律责任. Если вы обнаружите контент,涉嫌侵犯版权, пожалуйста, отправьте письмо по адресу: notice#oldtoolbag.com (во время отправки письма замените # на @) для подачи жалоб,并提供相关证据. При обнаружении фактов, сайт немедленно удаляет涉嫌侵权的内容。

Давай полюбим это