内置指令
v-bind: 单向绑定解析表达式,可简写为 :XXX
v-model:双向数据绑定
v-for: 遍历数组/对象/字符串
v-on: 绑定时间监听,可简写为@
v-if:条件渲染(动态控制节点是否存在)
v-else:条件渲染(动态控制节点是否存在)
v-show:条件渲染(动态控制节点是否展示)
v-text指令:
1、向其所在的节点中渲染文本内容
2、写插值语法的区别:v-text会替换掉节点中的内容,{{xxx}}则不会
v-html指令:
1、作用:向指定节点中渲染包含html结构的内容。
2、与插值语法的区别:
(1)、v-html会替换掉节点中所有的内容,{{XX}}则不会
(2)、v-html可以识别html结构!!
3、严重注意:
(1)、在网站上动态渲染任意HTML是非常危险的,容易导致XSS攻击
(2)、一定要在可信的内容上使用v-html,永远不要用在用户提交的内容上!(cookie)
v-cloak指令(没有值):
1、本质是一个特殊属性,vue实例创建完毕并接管容器后,会删掉v-cloak属性
2、使用css配合v-cloak可以解决网速慢时页面展示出{{XXX}}的问题。
v-once指令:
1、v-once所在节点在初次动态渲染后,就视为静态内容了
2、以后数据的改变不会引起v-once所在结构的更新,可以用在优化性能。
v-pre指令
1、跳过其所在节点的编译过程
2、可利用她跳过:没有使用指令语法、没有使用插值语法的节点,会加快编译。
自定义指令
一、定义语法
(1)、局部指令:
new Vue({
directives:{
指令名:配置对象
}
})
或
new Vue({
directives:{
指令名(a,b){
}
}
})
(2)、全局指令:
Vue.directive(指令名,配置对象)
或
Vue.directive(指令名,回调函数)
二、配置对象中常用的3个回调:
(1)、bind:指令与元素成功绑定时调用(一上来)
(2)、inserted: 指令所在元素被插入页面时调用
(3)、update: 指令所在模板结构被重新解析时调用
三、备注:
1、指令定义时不加v-,但使用时要加v-:
2、指令名如果是多个单词,要使用kebeb-case命名方式,不要用camelCliass命名。