Vue.js渲染函数是否允许返回VNode数组?函数式组件返回语法疑问
问题解答
你记忆中「render函数只能返回单个VNode」是Vue 2.3版本之前的旧限制,对应你贴的函数式组件场景,有明确的规则说明:
- Vue 2.3及以上版本中,函数式组件的render函数天然支持直接返回VNode数组,不需要额外用空节点包裹根元素,这是官方开放的合法语法,你看到的代码写法完全符合规范。
- 该能力在Vue 2.x版本中仅对函数式组件开放,普通有状态组件的多根节点支持是Vue 3版本才新增的特性。
- 你代码中数组内通过
&&条件判断生成的falsy值(比如withAd && adWrap(...)在条件不成立时返回的false),Vue会自动过滤,不会渲染无效节点,也属于合法写法。
内容的提问来源于stack exchange,提问作者phnx
相关产品推荐
相关产品推荐

