• 首页
  • css3教程
  • html5教程
  • jQuery手册
  • vue手册
  • php手册
  • MySQL手册
  • apache手册
  • redis手册
  • withDirectives

    允许将指令应用于 VNode。返回一个包含应用指令的 VNode。

    import { withDirectives, resolveDirective } from 'vue'
    const foo = resolveDirective('foo')
    const bar = resolveDirective('bar')
    
    return withDirectives(h('div'), [
        [foo, this.x],
        [bar, this.y]
    ])
    


    参数

    接受两个参数:vnodedirectives

    vnode

    • 类型:vnode
    • 详细:一个虚拟节点,通常使用h()创建。

    directives

    • 类型:Array
    • 详细:一个指令数组。每个指令本身都是一个数组,最多可以定义 4 个索引,如以下示例所示。

    [directive]- 该指令本身。必选。

    const MyDirective = resolveDirective('MyDirective')
    const nodeWithDirectives = withDirectives(h('div'), [[MyDirective]])
    

    [directive, value]- 上述内容,再加上分配给指令的类型为any的值。

    const MyDirective = resolveDirective('MyDirective')
    const nodeWithDirectives = withDirectives(h('div'), [[MyDirective, 100]])
    

    [directive, value, arg]- 上述内容,再加上一个string参数,比如:在v-on:click中的click

    const MyDirective = resolveDirective('MyDirective')
    const nodeWithDirectives = withDirectives(h('div'), [
        [MyDirective, 100, 'click']
    ])
    

    [directive, value, arg, modifiers]- 上述内容,再加上定义任何修饰符的key: value键值对Object

    const MyDirective = resolveDirective('MyDirective')
    const nodeWithDirectives = withDirectives(h('div'), [
        [MyDirective, 100, 'click', { prevent: true }]
    ])
    


    withDirectives只能在rendersetup函数中使用。

    上篇:createApp

    下篇:createRenderer