函数组件的优势


函数式组件是一种定义自身没有任何状态的组件的方式。它们很像纯函数:接收 props,返回 vnodes。函数式组件在渲染过程中不会创建组件实例 (也就是说,没有 this),也不会触发常规的组件生命周期钩子。

在 Vue2 正常组件是通过Vue.extend方法进行创建, 函数式组件就是普通的函数,没有 new 的过程。最终就是将返回的虚拟 DOM 变成真实 DOM 替换对应的组件,同时函数式组件不会被记录在组件的父子关系中。

因此在 Vue2 中函数式组件有以下优势:

  • 性能优化: 函数式组件相对于常规组件在渲染性能上具有优势。由于函数式组件是无状态的,不包含生命周期钩子和实例状态,渲染时的开销更小。
  • 没有 this : 函数式组件不依赖于 this,不再有 this 绑定问题。
  • 可读性和维护性: 函数式组件更加简洁和直观。只是一个函数,没有复杂的选项对象和实例属性。这使得代码更易于阅读和维护。
  • 易测试: 由于函数式组件是纯函数,因此更容易编写单元测试。

但在 Vue3 中因为所有的组件都不用 new 了,本身就是函数实现的,所以在性能上没有了优势,所以不在建议使用函数组件~


文章作者: 高红翔
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 高红翔 !
  目录