vue指令有哪些 用法以及修饰符 自定义指令

v-if:根据表达式的值的真假条件渲染元素,在切换时元素及它的数据绑定/组件被销毁并重建。v-if 控制元素的渲染 v-if 为假 该元素不会创建

v-else:限制:前一兄弟元素必须有 v-if 或 v-else-if。

v-else-if:前一兄弟元素必须有 v-if 或 v-else-if。v-show:根据表达式之真假值,切换元素的display CSS 属性。 可以控制元素的显示隐藏通过display none v-for:循环指令,基于一个数组或对象渲染一个列表,Vue 2.0 以上必须需配合key值使用。绑定一个 标签 循环一个数据源 数组 表格 数字 字符串 v-bind:动态地绑定一个或多个特性,或一个组件prop到表达式。 属性后面跟的是固定字符串 作用:属性绑定可以让属性后面 跟变量或者表达式

1动态地绑定一个或多个 attribute,或一个组件 prop 到表达式。

2在绑定 class 或 style attribute 时,支持其它类型的值,如数组或对象。可以通过下面的教程链接查看详情。

3在绑定 prop 时,prop 必须在子组件中声明。可以用修饰符指定不同的绑定类型。

修饰符:

.prop - 作为一个 DOM property 绑定而不是作为 attribute 绑定。

区别 attributes property 可访问的属性 包含标签里定义的所有属性 只包含 HTML 标准的属性,不包含自定义属性 .camel - 将 v-bind property 名称驼峰化。

v-on:用于监听指定元素的DOM事件,比如点击事件。绑定事件监听器。 事件名=‘事件处理函数’ 事件名和原生JS一样

修饰符: .stop - 调用 event.stopPropagation(),用来取消冒泡事件。 .prevent - 调用 event.preventDefault(),阻止默认事件。 .capture - 添加事件侦听器时使用 capture 模式。 .self - 只当事件是从侦听器绑定的元素本身触发时才触发回调。 .{keyCode | keyAlias} - 只当事件是从特定键触发时才触发回调。 .native - 监听组件根元素的原生事件。 .once - 只触发一次回调。 .left - (2.2.0) 只当点击鼠标左键时触发。 .right - (2.2.0) 只当点击鼠标右键时触发。 .middle - (2.2.0) 只当点击鼠标中键时触发。 .passive - (2.3.0) 以 { passive: true } 模式添加侦听器

v-model:实现表单输入和应用状态之间的双向绑定。 相当于事件绑定v-on和属性绑定v-bind的综合(集合体)

.lazy - 取代 input 监听 change 事件 .number - 输入字符串转为有效的数字 .trim - 输入首尾空格过滤

v-pre:跳过这个元素和它的子元素的编译过程。可以用来显示原始Mustache标签。跳过大量没有指令的节点会加快编译。 v-once:只渲染元素和组件一次,随后的重新渲染,元素/组件及其所有的子节点将被视为静态内容并跳过。这可以用于优化更新性能。 v-text:相当于innertext,插入文本。

v-html:相当于innerHTML,插入标签。

v-slot:缩写:# 只能在插槽上使用 插槽名 (可选,默认值是 default)

v-cloak :这个指令保持在元素上直到关联实例结束编译。和 CSS 规则如 [v-cloak] { display: none } 一起用时,这个指令可以隐藏未编译的 Mustache 标签直到实例准备完毕。

自定义指令

主要是通过Vue.directive来定义!

在script模板里增加directives属性,里面写想要增加的指令名,然后调用钩子函数,为指令增加想要实现的功能代码。

钩子函数:

inserted:被绑定元素插入父节点时调用 (仅保证父节点存在,但不一定已被插入文档中)。

bind:只调用一次,指令第一次绑定到元素时调用。在这里可以进行一次性的初始化设置。

update:所在组件的 VNode 更新时调用,但是可能发生在其子 VNode 更新之前。指令的值可能发生了改变,也可能没有。但是你可以通过比较更新前后的值来忽略不必要的模板更新 (详细的钩子函数参数见下)。

componentUpdated:指令所在组件的 VNode 及其子 VNode 全部更新后调用。

unbind:只调用一次,指令与元素解绑时调用。

指令钩子函数会被传入以下参数: el:指令所绑定的元素,可以用来直接操作 DOM 。 binding:一个对象,包含以下属性:

  1. name:指令名,不包括 v- 前缀。

  2. value:指令的绑定值,例如:v-my-directive=“1 + 1” 中,绑定值为 2。

  3. oldValue:指令绑定的前一个值,仅在 update 和 componentUpdated 钩子中可用。无论值是否改变都可用。

  4. expression:字符串形式的指令表达式。例如 v-my-directive=“1 + 1” 中,表达式为 “1 + 1”。

  5. arg:传给指令的参数,可选。例如 v-my-directive:foo 中,参数为 “foo”。

  6. modifiers:一个包含修饰符的对象。例如:v-my-directive.foo.bar 中,修饰符对象为 { foo: true, bar: true }。

  7. vnode: Vue编译生成的虚拟节点。移步 VNode API 来了解更多详情。

  8. oldVnode:上一个虚拟节点,仅在 update 和 componentUpdated 钩子中可用。

你可能感兴趣的:(vue框架,vue.js,前端框架)