Vue指令
指令 (Directives) 是特殊的带有前缀 v- 的特性。指令的值限定为绑定表达式,因此上面提到的 JavaScript 表达式及过滤器规则在这里也适用。指令的职责就是当其表达式的值改变时把某些特殊的行为应用到 DOM 上。
在Vue中,常用的指令有v-text、v-html、v-if、v-show、v-for、v-on、v-bind、v-model、v-ref、v-el、v-pre、v-cloak。
先上代码:
|
|
v-if与v-else
根据条件判断结果渲染页面,也就是说只会渲染if和else里面的一个
|
|
template v-if与template v-else
根据条件判断结果渲染页面,也就是说只会渲染if和else里面的一个
|
|
v-text: 更新元素的textContent
在内部,大括号大括号Mustache大括号大括号
插值也被编译为textNode的一个v-text指令,所以下面两个span渲染结果一致
|
|
v-html:更新元素的 innerHTML
|
|
|
|
v-show与v-else
v-show的语句与v-if不同,不论判断条件结果如何,都会渲染整个html页面,只是将判断结果为false的那个节点加上style=”display:none;”
|
|
v-else
不需要表达式,但是使用的前提条件是前面的兄弟节点必须是v-if或者v-show
v-for
|
|
|
|
结果:
v-on: 绑定事件
|
|
定义在vue的methods
|
|
简单介绍:
通过v-for来遍历items,div内的span标签是遍历的结果,后面紧跟了几个点击事件:
div上的itemClick01是方法处理器
itemClick02是可以传递当前item值的内联语句
itemClick03是可以传递当前item的event事件的内联语句
itemClickStop是阻止冒泡,即相应完当前标签的事件后,阻止点击事件传递到上层div
itemClickPrevent是阻止默认行为,a标签本身是跳转到其他页面,加上itemClickPrevent后阻止了打开新页面的行为
keyUpEnter是响应enter键的事件,但是前提是光标是当前input内
页面显示结果如下(定义了item的hover,当前鼠标悬停在第二个item上)
点击“内联语句(参数item参数)”
|
|
点击“阻止冒泡”
|
|
点击“跳转到百度”:跳转到了百度页面。
点击“阻止a标签默认行为,不会跳转到百度”:没有响应
点击“input标签”: u clicked the parent div
,并点击enter键: keyCode: 13
v-bind
|
|
|
|
展示结果:
v-el
用法:
在其所有者Vue实例的$els对象上注册对DOM元素的引用,以便于访问。
|
|
v-ref
注册对父项的子组件的引用,以便直接访问。不期待一个表达。必须提供一个参数作为注册的id。组件实例将可以在其父$refs对象上访问。
当与组件一起使用时v-for,注册的值将是包含与其绑定到的Array相对应的所有子组件实例的Array。如果数据源v-for是一个Object,则注册的值将是包含镜像源对象的键 - 实例对的Object。
|
|
|
|
和 v-for 使用
|
|
|
|
在vue2的版本中,v-ref和v-el都被 ref指令代替
v-pre
v-pre标签内不解析
|
|