美文网首页
Vue实践与总结——指令

Vue实践与总结——指令

作者: xymspace | 来源:发表于2020-06-27 19:08 被阅读0次

    Vue指令

    目的:实现动态地绑定一个或多个 attribute,或一个组件 prop 到表达式。
    职责:当表达式的值改变时,将其产生的连带影响,响应式地作用于 DOM。

    指令分类

    Vue会对v-开头的特殊属性进行解析,影响当前dom

    类型 表达式
    内容输出 v-once、v-cloak
    循环 v-for
    逻辑 v-if、v-else、v-else-if、v-show
    属性绑定 v-bind(单项绑定)、v-model(双向绑定)
    事件 v-on
    其它 v-slot
    • v-show

      控制元素的display属性,会生成 元素dom

      适用于状态 频繁 切换的情况

    • v-if

      根据条件,创建或销毁元素,销毁时 会删除 元素dom

      适用于状态 较少 切换的情况

    • v-else

      限制!!:必须和v-if是同一级,且是相邻的兄弟级

      v-else
    • v-for

      除了在迭代的内容,还可获取到循环下标。

    • v-bind

    缩写::
    可以绑定(常用举例。还有其它绑定方式):

    • 选择器(:id,:class={class1:state1, class2:state2})
    • 样式(:style=[style1,style2])
    • 引用(:src="imageSrc")
      修饰符
    • .prop - 作为一个 DOM property 绑定而不是作为 attribute 绑定。(差别在哪里?)
    • .camel - (2.1.0+) 将 kebab-case attribute 名转换为 camelCase。(从 2.1.0 开始支持)
    • .sync
      (2.3.0+) 语法糖,会扩展成一个更新父组件绑定值的 v-on 侦听器。可实现双绑,比v-model更优秀,解决了v-model的缺点
    this.$emit('update:title', newTitle)
    
    <text-document v-bind:title.sync="doc.title"></text-document>
    

    单向数据流:当数据发生改变,模板会重新渲染,模板语法v-bind等单项指令,不会在视图发生变化时,更新数据。

    • v-model(默认绑定value属性以及change事件)

    使用限制:

    • input
    • select
    • textarea
    • components(自定义组件)
    • 通过事件响应后,发生改变的属性

    修饰符

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

    缺点

    • 不能同时绑定多个属性
    • 数据的修改比较隐蔽

    双向数据流:数据变化-->视图渲染,视图变化-->数据改变

    • v-cloak

      • 不需要表达式

      • 用法

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

    • v-on

      • 缩写@

      • 预期Function | Inline Statement | Object

      • 参数event

      • 修饰符

        • .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 } 模式添加侦听器

    自定义指令

    相关文章

      网友评论

          本文标题:Vue实践与总结——指令

          本文链接:https://www.haomeiwen.com/subject/rwpvfktx.html