zoukankan      html  css  js  c++  java
  • vue 复习(2)v-bind的应用 v-bind:classv-binf:style


    dasdclass与style绑定v-bind

    1. 绑定HTML Class
    对象语法

    有些时候我们想动态的切换class的类名。在原生的js或jq中我们就要通过事件来动态的改变class类名,但在vue中我们可以通过v-bind:class 来实现这一功能。

    <div v-bind:class="{ active: isActive }"></div>
    data:{
    isActive:false,
    }
    这其中class类名是否存在active取绝于data 中isActive的值为。
    isActive为false 的时候就不存在。为true时就存在
    想动态的切换多个class类名时

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

    data: { isActive: true, hasError: false}
    如上执行下来class的类名就为“static,active”。
    当data中isActive,hasError值进行变化时class类名也会进行相应的变化。
    也可以把多个对象直接定义在一个对象里。

    <div v-bind:class="classObject"></div>
    data: { classObject: { active: true, 'text-danger': false }}
    结果和上面的列子一样。

    data: { isActive: true, error: null},computed: { classObject: function () { return { active: this.isActive && !this.error, 'text-danger': this.error && this.error.type === 'fatal' } }}
    也可以将这个写在计算属性里面。

    当我们新建一个组建也可以在组建上用该方法绑定class类名

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

    <my-component v-bind:class="{ active: isActive }"></my-component>
    当 isActive 为 truthy[1] 时,HTML 将被渲染成为:
    <p class="foo bar active">Hi</p>
    truthy:在{{Glossary("JavaScript")}}中,Truthy(真值)指的是在{{Glossary("Boolean")}}上下文中转换后的值为真的值。所有值都是真值,除非它们被定义为 {{Glossary("Falsy", "falsy")}} (即, 除了false,0,“”,null,undefined和NaN 外)。

    2绑定内联样式
    直接看官网例子
    <div v-bind:style="{ color: activeColor, fontSize: fontSize + 'px' }"></div>
    data: { activeColor: 'red', fontSize: 30}
    v-bind:style 的对象语法十分直观——看着非常像 CSS,但其实是一个 JavaScript 对象。CSS 属性名可以用驼峰式 (camelCase) 或短横线分隔 (kebab-case,记得用单引号括起来) 来命名:

    也可以直接绑定到一个对象上
    <div v-bind:style="styleObject"></div>
    data: { styleObject: { color: 'red', fontSize: '13px' }}
    从 2.3.0 起你可以为 style 绑定中的属性提供一个包含多个值的数组,常用于提供多个带前缀的值,例如:
    <div :style="{ display: ['-webkit-box', '-ms-flexbox', 'flex'] }"></div>
    这样写只会渲染数组中最后一个被浏览器支持的值。在本例中,如果浏览器支持不带浏览器前缀的 flexbox,那么就只会渲染 display: flex。

  • 相关阅读:
    验证码生成程序
    会话技术Cookie&Session
    jsp基础、el技术、jstl标签、javaEE的开发模式
    js原生的Ajax
    java基础-反射
    hibernate 联合主键 composite-id
    在ubuntu18 安装nginx过程,以及遇到的错误!
    报错解决:error: this statement may fall through [-Werror=implicit-fallthrough=]
    nginx.conf中关于nginx-rtmp-module配置指令详解
    搭建Nginx+nginx-rtmp-module的hls流媒体服务器并用OBS进行推流
  • 原文地址:https://www.cnblogs.com/YinWeiBlog/p/10150289.html
Copyright © 2011-2022 走看看