Vue内置指令和自定义指令

一、Vue内置指令

v-text指令:

  • 作用:向其所在的节点中渲染文本内容
  • 与插值语法的区别:v-text会替换掉节点中的内容,{{xx}}则不会

v-html指令:

1.作用:向指定节点中渲染包含html结构的内容

Vue内置指令和自定义指令_第1张图片

2.与插值语法的区别:

  • v-html会替换掉节点中所有的内容,{{xx}}则不会
  • v-html可以识别html结构

3.严重注意:v-html有安全性问题!!!

  • 在网站上动态渲染任意HTML是非常危险的,容易导致xss攻击
  • 一定要在可信的内容上使用v-html,永不要在用户提交的内容上!

v-cloak指令(没有值):

  • 本质是一个特殊的属性,Vue实例创建完毕并接管容器后,会删掉v-cloak属性
  • 使用css配合v-可以解决网速慢时页面展示出{{xxx}}的问题

Vue内置指令和自定义指令_第2张图片

v-once指令:

  • v-once所在节点在初次动态渲染后,就被视为静态内容了
  • 以后数据的改变不会引起v-once所在结构的更新,可以用于优化性能

Vue内置指令和自定义指令_第3张图片

v-pre指令:

  • 跳过其所在节点的编译过程
  • 可利用它跳过:没有使用指令语法、没有使用插值语法的节点,会加快编译

 

二、自定义指令

需求1:定义一个v-big指令,和v-text功能类似,但会把绑定的数值放大10倍

 Vue内置指令和自定义指令_第4张图片

需求2:定义一个v-fbind指令,和v-bind功能类似,但可以让其所绑定的input元素默认获取焦点

Vue内置指令和自定义指令_第5张图片 

1.定义语法:

(1)局部指令:

new Vue({
    directives:{指令名:配置对象}
})
或
new Vue({
    directives{指令名:回调函数}
})

(2)全局指令:

Vue.directive(指令名,配置对象) 
或
Vue.directive(指令名,回调函数)

2.配置对象中常用的三个回调

  • bind:指令与元素成功绑定时调用
  • inserted:指令所在元素被插入页面时调用
  • update:指令所在模板结构被重新解析事调用

3.备注:

  • 指令定义时不加v-,但使用时要加v-
  • 指令名如果是多个单词,要使用kebab-case(user-name)命令方式,不要用camelCase(userName)命名

你可能感兴趣的:(vue,vue,前端)