简介
vue在小编看来就是一个很流行,很火的前端框架之一。那么官方怎么说的呢,我们一起看看:Vue 是一套用于构建用户界面的渐进式框架。与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。另一方面,当与现代化的工具链以及各种支持类库结合使用时,Vue 也完全能够为复杂的单页应用提供驱动。
说了这么多,小编还是不懂。不过接下来小编整理了一些经常用的东东。希望有所帮助。
使用
- 引入:首先引入你的vue.js.当我们导入包之后,在浏览器的内存中,就多了一个 Vue 构造函数。
使用:当 new 出来的这个 vm 对象,就是我们 MVVM中的 VM调度者。Vue 实例所控制的这个元素区域,就是MVVM的 V。
示例:<div id="app"> <p>{{ msg }}</p> </div> <script> var vm = new Vue({ el:'#app',// 表示当前我们 new 的这个 Vue 实例,要控制页面上的哪个区域 data:{// data 属性中,存放的是 el 中要用到的数据 msg:'Hello World' } }) </script>
常用指令
{{}}
插值表达式。v-cloak
解决未编译时期,显示未编译的代码,能够解决插值表达式闪烁的问题。这个指令保持在元素上直到关联实例结束编译。和 CSS 规则如[v-cloak] { display: none }
一起用时,这个指令可以隐藏未编译的 Mustache 标签直到实例准备完毕。v-text
它会覆盖元素中原本的内容,但是插值表达式只会替换自己的这个占位符,不会把整个元素的内容清空。而且v-text
没有闪烁问题。v-html
和v-text
类似,但是v-html
可以把html解析,然而v-text
会把所有的值以字符串的形式输出,包括html。v-bind
:简写为:
是 Vue中,提供的用于绑定属性的指令。可以写合法的JS表达式.v-on
: 简写为:@
事件绑定机制。为元素指定处理函数的时候,如果加了小括号,就可以给函数传参了v-model
指令,可以实现表单元素和 Model 中数据的双向数据绑定.v-model 只能运用在表单元素中。而v-bind
只能实现数据的单向绑定,从M
自动绑定到V
, 无法实现数据的双向绑定。
事件修饰符
.stop
阻止冒泡。.prevent
阻止默认行为。.capture
实现捕获触发事件的机制。添加事件侦听器时使用事件捕获模式。.self
只当事件在该元素本身(比如不是子元素)触发时触发回调。.self 只会阻止自己身上冒泡行为的触发,并不会真正阻止 冒泡的行为。.once
只触发一次事件处理函数。
在Vue中使用样式
使用class样式
这些样式都需要使用v-bind
做数据绑定.
数组
<h1 :class="['top','res']">我是h1</h1>
三元表达式
<h1 :class="['top','res', isactive?'active':'']">我是h1</h1>
对象
数组中的对象
<h1 :class="['top','res', {'active': isactive}]">我是h1</h1>
- 对象
<h1 :class="{red:true, italic:true, active:true, thin:true}">我是h1</h1>
注意:在为 class 使用 v-bind 绑定 对象的时候,对象的属性是类名,由于 对象的属性可带引号,也可不带引号; 属性的值是一个标识符。
使用内联样式
直接在元素上通过
:style
的形式,书写样式对象<h1 :style="{color: 'red', 'font-size': '40px'}">我是h1</h1>
将样式对象,定义到 data 中,并直接引用到
:style
中<h1 :style="[ styleObj1, styleObj2 ]">我是h1</h1> <h1 :style="styleObj1">这是一个h1</h1>
在data上定义样式:
data: { h1StyleObj: { color: 'red', 'font-size': '40px' }, styleObj2: { 'font-style': 'italic' } }
v-for、v-if、v-show
v-for
迭代数组
<li v-for="(item, i) in list">索引:{{i}} --- 姓名:{{item.name}} --- 年龄:{{item.age}}</li>
迭代对象中的属性
<div v-for="(val, key, i) in userInfo">{{val}} --- {{key}} --- {{i}}</div>
迭代数字
<p v-for="i in 10">这是第 {{i}} 个P标签</p>
注意:2.2.0+ 的版本里,当在组件中使用 v-for 时,key 现在是必须的而且只接受
string / number
数据类型。当 Vue.js 用 v-for 正在更新已渲染过的元素列表时,它默认用 “就地复用” 策略。如果数据项的顺序被改变,Vue将不是移动 DOM 元素来匹配数据项的顺序, 而是简单复用此处每个元素,并且确保它在特定索引下显示已被渲染过的每个元素。为了给 Vue 一个提示,以便它能跟踪每个节点的身份,从而重用和重新排序现有元素,你需要为每项提供一个唯一 key 属性。<p v-for="item in list" :key="item.id"> <input type="checkbox">{{item.id}} --- {{item.name}} </p>
v-if、v-show
- v-if 的特点:每次都会重新删除或创建元素,有较高的切换性能消耗.
- v-show 的特点: 每次不会重新进行DOM的删除和创建操作,只是切换了元素的 display:none 样式,有较高的初始渲染消耗.
- 如果元素涉及到频繁的切换,最好不要使用 v-if, 而是推荐使用 v-show,如果元素可能永远也不会被显示出来被用户看到,则推荐使用 v-if 。