Vue2.0笔记——属性绑定和Class与Style绑定

属性绑定

通过指令v-bind可以绑定属性,该指令同v-on一样,也有一个简写,“:”冒号。
绑定元素的属性,并且可与元素的原属性共存。当原属性有值时则显示原属性的值,无值则使用绑定的值。

<div id="app">
    <img :src="url" :width="width" width="800" :height="height"/>
</div>

data:{
    url:"https://www.baidu.com/img/bd_logo1.png",
    width:300,
    height:300
}

这是属性绑定的用法。

Class与Style绑定

我们同常绑定class时,直接写在class中,这是普通的css绑定。

<style>
    .aa{
        color: red;
    }
    .bb{
        color: blue;
    }
</style>

<p class="aa">这是一段文字,用来测试Class与Style绑定</p>

而如果将这种普通绑定应用在Vue中是不行的。不能直接写:class=‘aa‘

<p :class="aa">这是一段文字,用来测试Class与Style绑定</p>

这样做它是不会显示出来的。
我们需要通过Vue数据data来动态实现。

直接通过data选项中变量 的方式

先定义class样式,然后再:class里填写与样式名绑定的名称

data:{
    color:‘aa‘
}
<p :class="color">通过Vue中data选项的变量来动态控制</p>

此时color值为aa,那么么颜色就是red,如果动态的为color属性值赋值为bb,那么字体颜色就为blue了。

通过数组的方式

.line{
        text-decoration: underline;
    }
<p :class="[color,line]">通过数组的方式来控制多个</p>

另外,指令中是可以有表达式的,就如上面的数组,还可以对data选项的某个number类型的属性进行数据操作,它仅能实现小的操作,而不能去实现语句。

通过json格式的方式绑定

这次可以不与data选项的属性有牵扯,直接通过设置类样式的值为true|false
为true则使用这个样式,为false则不使用这个样式,通过true|false来判定是否出现样式。这种方式也是最佳常用的。

    <p :class="{bb:false,line:true}">通过json的方式来绑定class</p>

由于,值为true|false,那么么我们也可以通过值大小的方式给定true或false。

data:{
    num:-99
}
<p :class="{bb:false,line:num>0}">通过json的方式来绑定class</p>

此时line的属性值是返回false,此时不会显示下划线。

通过变量引用json形式

就是不把json数据写在:class中了,而是定义为实例的一个属性,放在data中。
格式还是这样,不过是放在一个属性中。

data:{
    line_blue:{aa:true,line:true}
}
<p :class="line_blue">通过json变量的方式来绑定</p>

另外,在数组和json中都可以使用三元表达式? :的方式。

绑定内联样式

即通过绑定style, :style方式

data:{
    color:red,
    fontSize:20,

}
<p :style="{color:color,fontSize:fontSize + ‘px‘}">绑定内联</p>

因为内联的style可以直接在元素中写,所以json中的key都是css属性,color,textDecoration,fontSize这些内联的样式,(内联的和style文件内的样式名不一样,文件里是横杠,内联是驼峰首字母大写)。
另一个就是直接通过属性的方式了,把json赋值给属性。

data:{
    style1:{color:‘blue‘,fontSize:‘15px‘}
}
<p :style="style1">绑定内联</p>

同样,数组也是可以的。

多重值

绑定中的属性提供一个包含多个值的数组,常用于提供多个带前缀的值

<div :style="{ display: [‘-webkit-box‘, ‘-ms-flexbox‘, ‘flex‘] }"></div>

这样写只会渲染数组中最后一个被浏览器支持的值。在本例中,如果浏览器支持不带浏览器前缀的 flexbox,那么就只会渲染 display: flex。

原文地址:http://blog.51cto.com/zouzhelu/2103659

时间: 2024-07-31 18:04:03

Vue2.0笔记——属性绑定和Class与Style绑定的相关文章

Vue2.0笔记——Vue实例

Vue实例 每个 Vue 应用都是通过用 Vue 函数创建一个新的 Vue 实例开始的: var vm = new Vue({ // 选项 }) 当创建一个 Vue 实例时,你可以传入一个选项对象,就如前面所提到的如:data,methods,computed,watch等等.一个 Vue 应用由一个通过 new Vue 创建的根 Vue 实例,以及可选的嵌套的.可复用的组件树组成.举个例子,一个 todo 应用的组件树可以是这样的: 根实例Root └─ TodoList ├─ TodoIte

Vue2.0笔记——{{}}模板与自定义过滤器

模板语法 让我们回到最开始 <div id="app"> <h1>{{message}}</h1> </div> <script> var vm = new Vue({ el:'#app', data:{ message:'HelloWorld' } }) </script> 这是一个HelloWorld,简单的通过模板输出.我们称之为数据绑定,而最常见的就是"Mustache"语法 (双大括号

Vue2.0笔记——组件

组件 (Component) 是 Vue.js 最强大的功能之一.组件可以扩展 HTML 元素,封装可重用的代码.组件是自定义元素,Vue.js 的编译器为它添加特殊功能. 使用组件 组件的注册与使用 全局注册 我们需要通过一个全局的API来构造.Vue.extend(options)用法:使用基础 Vue 构造器,创建一个"子类".参数是一个包含组件选项的对象.同时还需要一个API通过这个构造器来注册组件,之后才能使用.Vue.component(id, [definition])用

Vue2.0笔记——组件2

组件组合 父子组件的通信 组件 A 在它的模板中使用了组件 B.它们之间必然需要相互通信:父组件可能要给子组件下发数据,子组件则可能要将它内部发生的事情告知父组件. 首先,需要在Vue实例里定义一个组件,设置data,然后在这个组件里再添加一个conponents选项,注意不要添错位置.示例: <div id="app"> <my-father></my-father> </div> //父组件的模板 <template id=&q

Vue2.0笔记——Vue常用实例属性,实例方法

实例属性 vm.$el vm.$data vm.options vm.$refs vm.$root vm.$el 该实例属性用于获取Vue实例使用的根DOM元素,即el选项所指的元素DOM <body> <div id="app"> <h4>你好,这是四级标题</h4> <p>这是一个段落,我什么都不想说</p> </div> <button onclick="getEl()"

Vue2.0笔记——起步

起步 同其他jquery一样,Vue也是需要引用的通过<script>标签引入js文件 <script src="js/vue.js"></script> 你可以去github下载,也可以直接引用Vue的js https://github.com/vuejs/vue/releases 或 <script src="https://cdn.jsdelivr.net/npm/vue"></script> 声明式

Vue2.0笔记——自定义指令

自定义指令 自定义指令主要用于,除系统提供外,自己对DOM的底层操作.例如当页面加载时需要将一个文本框为自动获得焦点.只要你在打开这个页面后还没点击过任何内容,这个输入框就应当还是处于聚焦状态. 我们通过全局自定义指令和局部自定义指令来讲解autofouce案例. 全局自定义指令 在全局API中通过Vue.directive( id, [definition] )来注册或获取全局指令.参数: id表示自定义的指令名称 definition为自定义指令的定义,一般可以含有几个生命周期钩子函数 bi

Vue2.0笔记——vue-router路由

简介 使用Vue.js开发SPA(Single Page Application)单页面应用.vue-router可以通过html5的history API或者hash实现单页应用,即不刷新跳转,切换地址,只是页面上的组件的切换:vue-router可以实现页面间传参等其他功能: 基本用法 当你要把 vue-router 添加进来,我们需要做的是,将组件(components)映射到路由(routes),然后告诉 vue-router 在哪里渲染它们. 首先我们需要定义链接url,而vue-ro

Vue2.0源码阅读笔记--生命周期

一.Vue2.0的生命周期 Vue2.0的整个生命周期有八个:分别是 1.beforeCreate,2.created,3.beforeMount,4.mounted,5.beforeUpdate,6.updated,7.beforeDestroy,8.destroyed. 用官方的一张图就可以清晰的了解整个生命周期: Vue最新源码下载:地址 二:源码分析 1.先看new Vue实例的方法 创建Vue实例的文件是: src/core/instance/index.js function Vue