修饰符

作者: 郑馋师 | 来源:发表于2020-02-06 18:10 被阅读0次
    比较重要的修饰符

    红色是比较重要的修饰符
    一定要搞懂的


    四个修饰符

    stop

    阻止冒泡事件

    prevent

    阻止默认动作,比如说@click.prevent,这样点了和没电一样的

    keypress

    @click.keypress.13=xxx这样的话就相当于当按了keypress上代号为13的键时执行一个函数,但是要知道的是这些太难记,所以我们通常会使用alias,也就是别名,vue支持的别名有

    • .enter
    • .tab
    • .delete (捕获“删除”和“退格”键)
    • .esc
    • .space
    • .up
    • .down
    • .left
    • .right
      只要使用这些键都可以使用别名

    sync(重要)

    sync是一个非常有用的非常重点要记住的修饰符
    有时候我们会需要prop来调用外部数据,但是我们是不可以直接修改外部数据的,需要发布需求出去,让外部数据接收并且自己修改。这样才更加有序
    比如在开发可复用的组件库时。我们需要做的只是让子组件改变父组件状态的代码更容易被区分。从 2.3.0 起我们重新引入了 .sync 修饰符,但是这次它只是作为一个编译时的语法糖存在。它会被扩展为一个自动更新父组件属性的 v-on 监听器。

    我们推荐以update:myPropName 的模式触发事件取而代之。举个例子,我们可以用以下方法表达对其赋新值的意图:

     <button @click="$emit('update:money', 10)">
    

    第一个是emit发布的事件,名字叫做update:money,需要特别注意的是,发布的事件通常为
    update:xxx,这是vue作者规定的。
    然后父组件可以监听那个事件并根据需要更新一个本地的数据属性。例如:

    <Child :money v-on:"update:money"="total=$event"/>
    

    也就是说,我们通过emit发布了一个事件'update:money',值为10,vue会把值存在一个event里面
    然后父组件通过v-on订阅了这个事件'update:money',并且可以得到这个10,然后选择更新自己的数据
    但是这个比较常用,所以vue作者就把父组件接收的给简化了为sync修饰符,使其可以比较方便

    <Child :money.sync="total"/>//简化前<Child :money v-on:"update:money"="total=$event"/>
    

    这个是个非常实用的功能

    注意

    注意带有 .sync 修饰符的 v-bind 不能和表达式一起使用 (例如 v-bind:title.sync=”doc.title + ‘!’” 是无效的)。取而代之的是,你只能提供你想要绑定的属性名,类似 v-model。
    当我们用一个对象同时设置多个 prop 的时候,也可以将这个 .sync 修饰符和 v-bind 配合使用:

    <text-document v-bind.sync="doc"></text-document>
    

    这样会把 doc 对象中的每一个属性 (如 title) 都作为一个独立的 prop 传进去,然后各自添加用于更新的 v-on 监听器。

    将 v-bind.sync 用在一个字面量的对象上,例如 v-bind.sync=”{ title: doc.title }”,是无法正常工作的,因为在解析一个像这样的复杂表达式的时候,有很多边缘情况需要考虑。

    相关文章

      网友评论

          本文标题:修饰符

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