导读

为什么说学了这么多?

因为你已经学习过了Hooks的实践,却依旧对Hooks一无所知!

Hooks,前端理念,又称钩子函数

Hooks 是一种编程技术和实践,它的出现是为了更好地组织和复用代码。

在 Vue 3 中,Hooks 是一个重要的概念,它可以将组件内部的逻辑和状态进行分离和封装。通过使用 Hooks,可以让组件更加简洁、易读、易维护,并且提高代码的复用性。

Hooks在React 和 Vue 3 中本质上一种实现了Hooks理念的特殊函数,它们可以让你在函数式组件中使用类组件的状态、生命周期等特性。换句话说,它们可以让你在函数式组件中处理类组件的一些工作。

Vue 3 中提供了一些常用的 Hooks,例如 setupcomputedwatchrefonMountedonUpdated 等。这些 Hooks 都是实际存在的代码实现,它们可以让开发者更加方便地进行组件开发。同时,开发者也可以根据自己的需求来创建自定义的 Hooks。

总之,通过使用 Hooks,可以使得代码更加可读、可维护,也可以提高代码的复用性和开发效率。Hooks 的出现不仅仅是一种技术实践,更是一种编程理念,它在整个前端开发领域中都有着广泛的应用。

明确Vue2还没有Hooks的概念

Vue 2 没有 Hooks 的概念。在 Vue 2 中,组件的逻辑和状态都是通过选项(如 datacomputedwatchmethods 等)进行管理的。

而在 Vue 3 中,为了更好地管理和组织代码,引入了 Hooks 的概念,将组件内的逻辑和状态进行分离和封装,使得组件更加可复用和可维护。因此,在 Vue 3 中,使用 Hooks 可以更加方便地进行组件开发。

Hooks在React和Vue3被广泛实践

Hooks 的概念并不是只停留在理论层面,它的出现是为了实现更好的代码组织和复用。在 Vue 3 中,Hooks 是实际存在的概念,它可以让开发者更加方便地进行组件开发。

在 Vue 3 中,许多常用的功能都被封装成了 Hooks,例如

  1. setup():组件实例创建之前执行,用于组件初始化,包括响应式数据、方法和计算属性的设置。
  2. reactive():用于将一个对象转化成响应式数据对象。
  3. ref():用于将一个基础类型值或对象转化成响应式数据对象。
  4. computed():用于创建一个计算属性。
  5. watch():用于监听一个数据的变化,当数据变化时执行相应的回调函数。
  6. onMounted():在组件挂载到DOM之后执行的回调函数。
  7. onUpdated():在组件更新之后执行的回调函数。
  8. onUnmounted():在组件卸载之前执行的回调函数。
  9. onActivated():在组件被激活时执行的回调函数,只适用于keep-alive组件。
  10. onDeactivated():在组件被停用时执行的回调函数,只适用于keep-alive组件。

这些Hooks都是实际存在的代码实现,提供了非常灵活的组件开发方式,能够帮助开发者更好地管理和响应组件的状态和生命周期。通过使用这些 Hooks,可以使得组件更加简洁、易读、易维护,并且提高代码的复用性。因此,我们可以把 Hooks 看作是一种编程技术和实践,它能够提高我们代码的质量和效率。

再回过头来看一下React中的Hooks函数吧,它相对见名知意,比如React中有多个预定义的Hooks函数,包括useState、useEffect、useContext、useReducer、useCallback、useMemo、useRef和useImperativeHandle。

可以发现的是基本都是use开头,在Vue3的第三方库vueuse或许就是受其影响,其库的钩子函数基本都是use开头