么是Vue.js
图解
|
|
解释:
el:
表示当时Vue实例的控制区域;data:
存放当前Vue实例中所需的Model(数据)。其中的msg就是一个Vue的元素。msg
,使用:即可展示出来(其中msg是在Vue中声明的元素,如果未声明会报错)在入门案例中我们初步了解到,在View层我们可以通过插值表达式的方式展示Vue绑定的数据;但是存在一个问题,当网络很慢的情况下,即在vue.js
还没有加载完毕时,视图层不会将识别为Vue中的插值表达式,而是作为字符串显示到页面上。
为了解决这个问题,Vue.js提供了v-cloak
指令,可以解决插值表达式闪烁的问题。
|
|
扩展
解决插值表达式闪烁问题,除了v-cloak
指令,Vue还提供了v-text
指令。
|
|
v-cloak与v-text的区别v-text
默认会覆盖掉元素中原有的内容v-cloak
不会覆盖掉原有的内容
在上面,我们了解了v-text
输出Vue元素,但是如果我们需要显示的数据是一段HTML
代码,v-text
和都将无能为力,
为此,Vue提供了专门渲染HTML数据的指令:v-html
上面我们学习的指令都是Vue内置的指令,那么在Vue内置的指令中显示Vue绑定的变量,这当然没毛病;但是如果直接在HTML属性中使用Vue绑定的指令(不是用)这样可以吗?
|
|
回答当然是不行的,因为在HTML属性中直接使用Vue绑定的变量,HTML并不能将其识别为其引用的是Vue中的元素,而是作为一个字符串输出。
为了解决上述问题,Vue提供了v-bind:
指令来绑定一些HTML属性:
|
|
如上,被v-bind:
绑定的属性,其元素不再是字符串,而是被识别为Vue的绑定的变量(同样这个变量必须声明了)。另外v-bind:
还有一个简易写法::
。
|
|
Vue提供了事件绑定机制的指令:v-on:
;用其我们可以用来绑定一些常见的触发事件:click、mouseover …
|
|
其中methods
是Vue内置的对象,用于存放一些自定义的方法函数
拓展
使用js内置的函数setInterval
(定时器),实现跑马灯效果:
|
|
解释:
1、v-on:
也有简写形式:@
,用法如上。
2、在视图层取VM中的数据我们可以使用或一些内置指令;而在VM实例内部获取定义的其他变量或方法等,使用:this.数据属性名
(其中的this表示当前VM实例对象)。
3、methodName:function(){}
在ES6中有一个简便的写法:methodName(){}
。
4、setInterval()
和clearInterval()
是js中内置的函数,用法如上。
5、正常我们调用函数会写:name(function(){})
,而ES6也提供了一个方式:methodName(() => {})
,这种用法的好处就解决了this
指向问题,因为如果元素定义在了函数内部,那么其中的this
就表示当前函数的对象,如果我们需要使用外部的对象,除了在外部全局定义一个对象,一个简单的方式就是使用ES6提供的=>
。
.stop 阻止冒泡
.prevent 阻止默认事件
.capture 添加时间侦听器时使用时间捕获模式
.self 只当事件在该元素本身(比如不是子元素)触发时触发回调
.once 事件只触发一次
用法:
|
|
v-model
v-bing
实例
|
|
数组涂陌
其中的italic、color是自定义的类名,需在外部定义CSS样式
数组中嵌套对象涂陌
其中的flag是Vue绑定的变量,在data
进行声明
直接使用对象涂陌
实例
|
|
将样式对象定义到data
中,并在:style
中引用
|
|
在:style
中通过数组,引用多个data
上的样式对象
|
|
实例
|
|
Vue提供了遍历集合、数组的指令:v-for
;用法: v-for="别名 in 集合名"
|
|
其中的i
是迭代得到的别名,可写可不写,但是必须是在迭代元素别名的后面定义
|
|
迭代对象数组,通过 的方式,这个属性名就是对象数组中定义的元素属性名
|
|
迭代对象,迭代得到的是对象的value
值和key
值,注意得到的第一个是value值,第二个是key值,与我们定义的对象属性顺序是刚好相反的。
|
|
在vue2.0+版本里,当使用v-for
渲染数据,必须制定对应的key
值(这里的key是一个属性,不是前面迭代的key值)。
用法:
|
|
其中:key
就说明了key属性必须是通过v-bind
绑定的元素,而:key=""
中指定的值必须是string/number
类型的值,比如此处使用的是item.id
中ID是number值,并且是唯一的。
目的:
避免迭代元素时,为循环元素绑定的是列表中的第几个元素(指定位置),而不是指定的某个元素(指定身份)。
Vue提供了两个指令来实现元素显示状态的切换:v-if
v-show
区别
v-if
的特点:每次都会重新删除和创建元素,具有较高的切换性能消耗(因为每次执行都要进行删除和创建元素)。
v-show
的特点:每次不会重建进行DOM的删除和创建操作,只是切换了元素的display:none
样式,具有较高的初识渲染消耗(即每次都只是将元素隐藏了,并没有真正的删除掉)。
实例
|
|