Vue入门---属性、style和class绑定方法

2018-10-22  本文已影响5人  唐人不自醉

一 、用对象的方法绑定class

<!DOCTYPE html>
<html>
<head>
   <meta charset="UTF-8">
   <title>class与style绑定</title>
   <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
   <script src="../../node_modules/vue/dist/vue.js" type="text/javascript" charset="utf-8"></script>
   <style>
      .class1{
         color: #f00;
      }
      .class2{
         background-color: #00f;
      }
   </style>
</head>
<body>
<div class="test">
   <div class="otherClass" :class="{'class1':name1,'class2':name2}">我是娃哈哈</div> <!--方法一:用对象的方式实现  name1和name2是boolean型,为true时给元素加上对应的class,为false不添加-->
</div>
<script type="text/javascript">
   var myVue = new Vue({
      el:".test",
      data: {
         name1: true,
         name2: false,
      }
   })
</script>
</body>
</html>

实现效果:



关于使用对象绑定class,还可以用另外一种写法:

<!DOCTYPE html>
<html>
<head>
   <meta charset="UTF-8">
   <title>class与style绑定</title>
   <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
   <script src="../../node_modules/vue/dist/vue.js" type="text/javascript" charset="utf-8"></script>
   <style>
      .class1{
         color: #f00;
      }
      .class2{
         background-color: #00f;
      }
   </style>
</head>
<body>
<div class="test">
   <div class="otherClass" :class="classObj">我是娃哈哈</div> <!--方法一:用对象的方式实现 ,true给元素加上对应的class,为false不添加-->
</div>
<script type="text/javascript">
   var myVue = new Vue({
      el:".test",
      data: {
         classObj: {
            class1: true,
            class2: false,
         }

      }
   })
</script>
</body>
</html>
image

二 、用数组的方法绑定class

<!DOCTYPE html>
<html>
<head>
   <meta charset="UTF-8">
   <title>class与style绑定</title>
   <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
   <script src="../../node_modules/vue/dist/vue.js" type="text/javascript" charset="utf-8"></script>
   <style>
      .class1{
         color: #f00;
      }
      .class2{
         background-color: #ff0;
      }
   </style>
</head>
<body>
<div class="test">
   <div class="otherClass" :class="[name1,name2]">我是娃哈哈</div> <!--方法二:用数组的方式实现 -->
</div>
<script type="text/javascript">
   var myVue = new Vue({
      el:".test",
      data: {
            name1: 'class1',
            name2: 'class2',

      }
   })
</script>
</body>
</html>

实现效果:



其实在数组中还可以用判断是否显示这个类名,举个例子:

<!DOCTYPE html>
<html>
<head>
   <meta charset="UTF-8">
   <title>class与style绑定</title>
   <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
   <script src="../../node_modules/vue/dist/vue.js" type="text/javascript" charset="utf-8"></script>
   <style>
      .class1{
         color: #f00;
      }
      .class2{
         background-color: #ff0;
      }
   </style>
</head>
<body>
<div class="test">
   <div class="otherClass" :class="[name1, isShow? name2 : '']">我是娃哈哈</div> <!--方法一:用数组的方式实现 ,采用三元表达式,条件为true时显示-->
</div>
<script type="text/javascript">
   var myVue = new Vue({
      el:".test",
      data: {
            name1: 'class1',
            name2: 'class2',
            isShow: false,

      }
   })
</script>
</body>
</html>

实现效果是:


image

三、 用数组和对象混合的方法绑定class

<!DOCTYPE html>
<html>
<head>
   <meta charset="UTF-8">
   <title>class与style绑定</title>
   <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
   <script src="../../node_modules/vue/dist/vue.js" type="text/javascript" charset="utf-8"></script>
   <style>
      .class1{
         color: #f00;
      }
      .class2{
         background-color: #ff0;
      }
   </style>
</head>
<body>
<div class="test">
   <div class="otherClass" :class="[name1, {class2 :isShow}]">我是娃哈哈</div> <!--方法三:用数组对象组合的方式实现,条件为true时显示-->
</div>
<script type="text/javascript">
   var myVue = new Vue({
      el:".test",
      data: {
            name1: 'class1',
            class2: 'name2',
            isShow: true,

      }
   })
</script>
</body>
</html>

实现的效果:


四、 用对象的方式实现style绑定

<!DOCTYPE html>
<html>
<head>
   <meta charset="UTF-8">
   <title>class与style绑定</title>
   <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
   <script src="../../node_modules/vue/dist/vue.js" type="text/javascript" charset="utf-8"></script>
   <style>
      .class1{
         color: #f00;
      }
      .class2{
         background-color: #ff0;
      }
   </style>
</head>
<body>
<div class="test">
   <div class="otherClass" :style="{color: color, width: width + 'px'}">我是娃哈哈</div> <!--方法三:用对象的方式实现-->
</div>
<script type="text/javascript">
   var myVue = new Vue({
      el:".test",
      data: {
            color: 'red',
            width: 100,

      }
   })
</script>
</body>
</html>

实现效果如下:



其实也可以写为第二种方式:

<!DOCTYPE html>
<html>
<head>
   <meta charset="UTF-8">
   <title>class与style绑定</title>
   <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
   <script src="../../node_modules/vue/dist/vue.js" type="text/javascript" charset="utf-8"></script>
</head>
<body>
<div class="test">
   <div class="otherClass" :style= "styleObj">我是娃哈哈</div> <!--方法三:用对象的方式实现-->
</div>
<script type="text/javascript">
   var myVue = new Vue({
      el:".test",
      data: {
         styleObj: {
            color: 'red',
            width: '200px',
         }


      }
   })
</script>
</body>
</html>

实现结果是:


五、 用数组和对象混合的方式实现style绑定

<!DOCTYPE html>
<html>
<head>
   <meta charset="UTF-8">
   <title>class与style绑定</title>
   <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
   <script src="../../node_modules/vue/dist/vue.js" type="text/javascript" charset="utf-8"></script>
</head>
<body>
<div class="test">
   <div class="otherClass" :style= "[styleObj1,styleObj2]">我是娃哈哈</div> <!--方法三:用对象的方式实现-->
</div>
<script type="text/javascript">
   var myVue = new Vue({
      el:".test",
      data: {
         styleObj1: {
            color: 'red',
            width: '200px',
         },
         styleObj2: {
            backgroundColor: '#ff0'
         }


      }
   })
</script>
</body>
</html>

实现效果:


六、绑定属性

v-bind:src=""

width/height/title....
简写::**src="" ** 推荐
<img src="{{url}}" alt=""> 效果能出来,但是会报一个404错误
<img v-bind:src="url" alt=""> 效果可以出来,不会发404请求 推荐使用
以上就是vue中绑定style和class还有属性的方法,希望对大家有帮助!

上一篇 下一篇

猜你喜欢

热点阅读