# 函数式组件
- 使组件无状态(没有 data)和无实例(没有 this 上下文)
- 函数式组件不会被看成一个真正的组件,render 生成的是普通的 Vnode,不会有递归子组件的过程。
patch 过程如果遇到一个节点是组件 vnode ,会递归执行子组件的初始化过程
Vue.component('my-component', {
functional: true,
// Props 是可选的
props: {
// ...
},
// 为了弥补缺少的实例
// 提供第二个参数作为上下文
render: function (createElement, context) {
// ...
}
})
<template functional>
<div class="cell">
<div v-if="props.value" class="on"></div>
<section v-else class="off"></section>
</div>
</template>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
← 选项/DOM Vue 组件传参的几种方式 →