English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
数据绑定一个常见需求是操作元素的 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 (во время отправки письма замените # на @) для подачи жалоб,并提供相关证据. При обнаружении фактов, сайт немедленно удаляет涉嫌侵权的内容。