0%

读Vue3.0 Function-Based API的RFC有感

总结

Class API唯一的优势是熟悉,但使用Function可提供给开发者更多裨益。受益于React Hooks但从根本上不同的是Function-Based API扎根于Vue自身的响应式系统。另外这些APIs解决了许多React Hooks上的使用问题。

使用问题有:

  • 在每一次render过程中,setup() function只调用一次,而React Hooks会重复调用,前者减少GC压力

核心理念

  • 更优雅的逻辑复用(使用setup() function)

    优雅之余还能解决问题。对于2.x逻辑复用通常使用mixin、HOC、Renderless components(通过作用域插槽),而使用上述存在三个问题分别是属性来源不清楚、命名空间冲突以及性能(HOC和Scoped slots需要额外有状态的组件实例开销)。

  • 更好的类型推断

    function天生是类型友好的,因为方法的prototype已经实现了完整的类型支持。

  • 缩小打包体积

    在标准的压缩规则下,函数与变量名可被缩短然而对象或类方法与属性不行。