[Vue]createElement参数

vue

一、createElement 函数模板

// @returns {VNode}

createElement(

// {String | Object | Function}

// 一个 HTML 标签字符串,组件选项对象,或者

// 解析上述任何一种的一个 async 异步函数。必需参数。

'div',

// {Object}

// 一个包含模板相关属性的数据对象

// 你可以在 template 中使用这些特性。可选参数。

{

// (详情见下一节)

},

// {String | Array}

// 子虚拟节点 (VNodes),由 `createElement()` 构建而成,

// 也可以使用字符串来生成“文本虚拟节点”。可选参数。

[

'先写一些文字',

createElement('h1', '一则头条'),

createElement(MyComponent, {

props: {

someProp: 'foobar'

}

})

]

)

二、函数模板各部分含义

1.'div':html节点

{String | Object | Function}

一个 HTML 标签字符串,组件选项对象,或者

解析上述任何一种的一个 async 异步函数,必要参数。


2.{}:节点的属性

{Object}

一个包含模板相关属性的数据对象

这样,您可以在 template 中使用这些属性。可选参数。


详细属性:

{

// 和`v-bind:class`一样的 API

// 接收一个字符串、对象或字符串和对象组成的数组

'class': {

foo: true,

bar: false

},

// 和`v-bind:style`一样的 API

// 接收一个字符串、对象或对象组成的数组

style: {

color: 'red',

fontSize: '14px'

},

// 正常的 HTML 特性

attrs: {

id: 'foo'

},

// 组件 props

props: {

myProp: 'bar'

},

// DOM 属性

domProps: {

innerHTML: 'baz'

},

// 事件监听器基于 `on`

// 所以不再支持如 `v-on:keyup.enter` 修饰器

// 需要手动匹配 keyCode。

on: {

click: this.clickHandler

},

// 仅对于组件,用于监听原生事件,而不是组件内部使用

// `vm.$emit` 触发的事件。

nativeOn: {

click: this.nativeClickHandler

},

// 自定义指令。注意,你无法对 `binding` 中的 `oldValue`

// 赋值,因为 Vue 已经自动为你进行了同步。

directives: [

{

name: 'my-custom-directive',

value: '2',

expression: '1 + 1',

arg: 'foo',

modifiers: {

bar: true

}

}

],

// 作用域插槽格式

// { name: props => VNode | Array<VNode> }

scopedSlots: {

default: props => createElement('span', props.text)

},

// 如果组件是其他组件的子组件,需为插槽指定名称

slot: 'name-of-slot',

// 其他特殊顶层属性

key: 'myKey',

ref: 'myRef'

}

3.[]:1的html节点的子节点

{String | Array}

子节点 (VNodes),由 `createElement()` 构建而成,

或使用字符串来生成“文本节点”。可选参数。

以上是 [Vue]createElement参数 的全部内容, 来源链接: utcz.com/z/379694.html

回到顶部