Vue的Class与Style绑定的方法


Posted in Javascript onSeptember 01, 2017

本文介绍了Vue的Class与Style绑定,分享给大家,具体如下:

绑定 HTML Class

对象语法

我们可以传给 v-bind:class 一个对象,以动态地切换 class:

<style>
  .exp{
    border: 1px solid #ccc;
  }
  .forExp{
    background: blue;
  }
</style>
<div class="exp" v-bind:class="{newExp:isNewExp}"></div>
<script>
  var exp=new Vue({
    el:".exp".
    data:{
      isForExp:false
    }
  })
</script>

如上,我们先给 .exp 一个边框,我们利用 v-bind 方法传入一个新的 class 属性 .newExp,设置一个蓝色的背景颜色。当我们在控制台修改 .newExp 的属性为 true 时,会给 div 添加一个蓝色的背景颜色。

我们也可以传入更多的属性来切换多个 class 。

<div class="exp" v-bind:class="{newExp:isExp,npc:isNpc}"></div>
<script>
  data:{
    isExp:false,
    isNpc:true
  }
</script>

在模板里的渲染结果为:

<div class="exp isNpc"></div>

我们也可以使用对象的方法来切换属性

<div class="exp" v-bind:class="obj"></div>
<script>
  data:{
    obj:{
      newExp:false,
      npc:true
    }
  }
</script>

渲染结果和上面的一样

数组语法

我们可以把一个数组传给 v-bind:class,以应用一个 class 列表:

<div class="exp" v-bind:class="[newExp,oldExp]"></div>
<script>
  data:{
    newExp:"new",
    oldExp:"old"
  }
</script>

渲染为:

<div class="exp new old"></div>

要切换class,使用三元运算符:

<div class="exp" v-bind:class="[act? newExp:oldExp]"></div>
<script>
  data{
    newExp:"new",
    oldExp:"old",
    act:true
  }
<script>

act 为 true 时,添加 new ,为 false 时添加 old。

用在组件上

声明一个组件:

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

然后在使用它的时候添加一些 class:

<my class="tip"></my>

最终渲染为

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

同样的适用于绑定 HTML class:

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

当active为true时,HTML 将被渲染成为:

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

绑定内联样式

对象语法

v-bind:style 的对象语法十分直观——看着非常像 CSS,其实它是一个 JavaScript 对象。 CSS 属性名可以用驼峰式 (camelCase) 或 (配合引号的) 短横分隔命名 (kebab-case):

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

使用对象语法的话,会看起来更加清晰

<div v-bind:style="obj"></div>
<script>
  data:{
    obj:{
      color:"#FFF",
      fontSize:"20px"
    }
  }
</script>

数组语法

v-bind:style 的数组语法可以将多个样式对象应用到一个元素上:

<div v-bind:style="[style1,style2]"></div>
<script>
  data:{
    style1:{
      color:"#666"
    },
    style2:{
      background:"#b1b1b1"
    }
  }
</script>

自动添加前缀

当 v-bind:style 使用需要特定前缀的 CSS 属性时,如 transform,Vue.js 会自动侦测并添加相应的前缀。

Chrome 和 Safari : -webkit-
IE :        -ms-
Firfox :      -moz-
Opera :      -o-

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
让任务管理器中的CPU跳舞的js代码
Nov 01 Javascript
使用 Node.js 做 Function Test实现方法
Oct 25 Javascript
jquery.cookie用法详细解析
Dec 18 Javascript
javascript数组快速打乱重排的方法
Jan 02 Javascript
用于deeplink的js方法(判断手机是否安装app)
Apr 02 Javascript
不用一句js代码初始化组件
Jan 27 Javascript
探究Vue.js 2.0新增的虚拟DOM
Oct 20 Javascript
JS常见创建类的方法小结【工厂方式,构造器方式,原型方式,联合方式等】
Apr 01 Javascript
BootStrap的双日历时间控件使用
Jul 25 Javascript
jQuery实现获取当前鼠标位置并输出功能示例
Jan 05 jQuery
JS数组方法concat()用法实例分析
Jan 18 Javascript
react国际化react-intl的使用
May 06 Javascript
Angular中封装fancyBox(图片预览)遇到问题小结
Sep 01 #Javascript
BootStrap模态框和select2合用时input无法获取焦点的解决方法
Sep 01 #Javascript
Angularjs实现上传图片预览功能
Sep 01 #Javascript
JavaScript中使用参数个数实现重载功能
Sep 01 #Javascript
bootstrap-table实现服务器分页的示例 (spring 后台)
Sep 01 #Javascript
jQuery EasyUI结合zTree树形结构制作web页面
Sep 01 #jQuery
基于Vue.js 2.0实现百度搜索框效果
Dec 28 #Javascript
You might like
模拟flock实现文件锁定
2007/02/14 PHP
ZF等常用php框架中存在的问题
2008/01/10 PHP
PHP 文本文章分页代码 按标记或长度(不涉及数据库)
2012/06/07 PHP
PHP防止表单重复提交的几种常用方法汇总
2014/08/19 PHP
Zend Framework教程之Zend_Db_Table_Row用法实例分析
2016/03/21 PHP
PHP中的表达式简述
2016/05/29 PHP
PHP合并数组函数array_merge用法分析
2017/02/17 PHP
JavaScript中this关键字使用方法详解
2007/03/08 Javascript
stream.js 一个很小、完全独立的Javascript类库
2011/10/28 Javascript
JS编程小常识很有用
2012/11/26 Javascript
基于jquery的网站幻灯片切换效果焦点图代码
2013/09/15 Javascript
jQuery插件EnPlaceholder实现输入框提示文字
2015/06/05 Javascript
学习Javascript面向对象编程之封装
2016/02/23 Javascript
学习Node.js模块机制
2016/10/17 Javascript
AngularJS指令与控制器之间的交互功能示例
2016/12/14 Javascript
ES6中Iterator与for..of..遍历用法分析
2017/03/31 Javascript
js学习总结之DOM2兼容处理重复问题的解决方法
2017/07/27 Javascript
解决低版本的浏览器不支持es6的import问题
2018/03/09 Javascript
如何在vue-cli中使用css-loader实现css module
2021/01/07 Vue.js
[01:02:25]2014 DOTA2华西杯精英邀请赛 5 24 iG VS DK
2014/05/26 DOTA
在python中使用正则表达式查找可嵌套字符串组
2017/10/24 Python
python爬虫增加访问量的方法
2019/08/22 Python
python 解压、复制、删除 文件的实例代码
2020/02/26 Python
在pycharm中关掉ipython console/PyDev操作
2020/06/09 Python
html5 外链式实现加减乘除的代码
2019/09/04 HTML / CSS
英国女性时尚鞋类的潮流制造者:Koi Footwear
2018/10/19 全球购物
什么是组件架构
2016/05/15 面试题
AJax面试题
2014/11/25 面试题
大众服装店创业计划书范文
2014/01/01 职场文书
革命先烈的英雄事迹材料
2014/02/15 职场文书
小学社会实践活动总结
2014/07/03 职场文书
党的群众路线教育实践活动批评与自我批评发言稿
2014/10/16 职场文书
2014年个人业务工作总结
2014/11/17 职场文书
酒店工程部主管岗位职责
2015/04/16 职场文书
2019年XX公司的晨会制度及流程!
2019/07/23 职场文书
导游词之西安大清真寺
2019/12/17 职场文书