zoukankan      html  css  js  c++  java
  • Vue_v-bind

    html属性不能使用双大括号形式绑定,只能使用v-bind指令。

    在将 v-bind 用于 class 和 style 时,Vue.js 做了专门的增强。表达式结果的类型除了字符串之外,还可以是对象或数组。

    <div id="app">
        <!--可以是数据模型,可以是具有返回值的js代码块或者函数-->
        <div v-bind:title="title" style="border: 1px solid red;  50px; height: 50px;"></div>
    </div>
    <script src="./node_modules/vue/dist/vue.js"></script>
    <script type="text/javascript">
        var app = new Vue({
            el: "#app",
            data: {
                title: "title",
            }
        })
    </script>

    1.绑定class样式

    数组语法

    我们可以借助于v-bind指令来实现:

    html:

    <div id="app">
        <div v-bind:class="activeClass"></div>
        <div v-bind:class="errorClass"></div>
        <div v-bind:class="[activeClass, errorClass]"></div>
    </div>
    <script src="./node_modules/vue/dist/vue.js"></script>
    <script type="text/javascript">
        var app = new Vue({
            el: "#app",
            data: {
                activeClass: 'active',
                errorClass: ['text-danger', 'text-error']
            }
        })
    </script>

    渲染后的效果:(具有active和hasError的样式)

    对象语法

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

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

    上面的语法表示 active 这个 class 存在与否将取决于数据属性 isActivetruthiness(所有的值都是真实的,除了false,0,“”,null,undefined和NaN)。

    你可以在对象中传入更多属性来动态切换多个 class。此外,v-bind:class 指令也可以与普通的 class 属性共存。如下模板:

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

    和如下 data:

    data: {
      isActive: true,
      hasError: false
    }

    结果渲染为:

    <div class="static active"></div>

    active样式和text-danger样式的存在与否,取决于isActive和hasError的值。本例中isActive为true,hasError为false,所以active样式存在,text-danger不存在。

    2.绑定style样式

    数组语法

    数组语法可以将多个样式对象应用到同一个元素上:

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

    数据:

    data: {
        baseStyles: {'background-color': 'red'},
        overridingStyles: {border: '1px solid black'}
    }

    渲染后的结果:

    <div style="background-color: red; border: 1px solid black;"></div>

    对象语法

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

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

    数据:

    data: {
      activeColor: 'red',
      fontSize: 30
    }

    效果:

    <div style="color: red; font-size: 30px;"></div>

    3.简写

    v-bind:class可以简写为:class

     

    学习中,博客都是自己学习用的笔记,持续更新改正。。。
  • 相关阅读:
    Codeforces Round #277 (Div. 2)
    Topcoder SRM 637 (Div.2)
    【转】大素数判断和素因子分解【miller-rabin和Pollard_rho算法】
    【网络流#5】UVA 11082 最大流
    【网络流#4】UVA 753 最大流
    Codeforces Round #274 (Div. 2)
    【网络流#3】hdu 1532
    【网络流#2】hdu 1533
    【网络流#1】hdu 3549
    Codeforces Round #273 (Div. 2)
  • 原文地址:https://www.cnblogs.com/Tunan-Ki/p/11867967.html
Copyright © 2011-2022 走看看