vue3中的hooks总结

下面是“Vue3中的Hooks总结”的完整攻略。

Vue3中的Hooks总结

什么是Hooks?

Hooks是Vue3中新增的API,是一组可重用状态逻辑(如设置计时器或订阅数据源),它们可以按照需要任意组合,以用于构建自定义的Vue函数式组件。使用Hooks的函数式组件让我们使逻辑更加封装和优雅,且更易于迭代和测试。

总体而言,Hooks的目的是在不编写类组件的情况下,让开发者能够在函数系组件中使用各种React的特性,例如状态、生命周期,及其他React方法等。

Vue3中的Hooks种类

useState

vue3使用reactive代替了vue2的Object.defineProperty来追踪响应式对象的改变,因此用reactive建立响应式对象和ref建立响应式标量很简单,但是建一个保存状态的变量却一点也不简单了,难道只能使用data?No!Vue3为我们这样的开发者准备了‘useState’这个Hook来改变函数组件的状态。

示例代码:

<template>
  <button @click="increment">点击我计数+1</button>
</template>

<script>
import { useState } from 'vue'

export default {
  setup () {
    const [count, setCount] = useState(0)
    const increment = () => setCount(count + 1)

    return {
      count,
      increment
    }
  }
}
</script>

当我们点击按钮时,count将从0变为1,Hook将在内存中保存状态。

useEffect

如果您有使用过React,则一定会知道React的useEffect,Vue3版的useEffect和React中的useEffect非常类似。 这里的 useEffect Hook 可以理解为 Vue2 中的 mountedupdated 钩子的组合。

示例代码:

<template>
  <div>
    <p>{{ message }}</p>
  </div>
</template>

<script>
import { reactive, ref, watch, onMounted, computed } from 'vue'

export default {
  setup () {
    // 设置响应式对象
    const state = reactive({
      count: 0
    })
    // 设置计算属性
    const message = computed(() => `count的值目前是 ${state.count}`)

    // useEffect 中要执行的操作
    const logOnUpdate = () => {
      console.log('每次 count 变化后,logOnUpdate会运行')
    }
    // useEffect 副作用
    watch(() => state.count, logOnUpdate)

    // mounted钩子
    onMounted(() => {
      console.log('mounted 钩子启动')
      setTimeout(() => {
        // 设置计数器
        state.count = 100
      }, 1000)
    })

    return {
      message
    }
  }
}
</script>

当数值实时更新时,logOnUpdate会运行,所以我们会在控制台看到log信息。当mounted执行时,我们会在控制台看到“mounted钩子启动”的log,一秒后计数器将增加到100。

总结

Hooks在Vue3中是一个全新的概念,使得组件化的编写变得更加方便和易于使用,这是Vue3的一大创新。

以上是本攻略简要介绍了Vue3中的Hooks和其中两个实现,包括useState和useEffect两种。 但Hooks的种类远远不止这两种,例如useReducer和useContext,这些是在React中常用的Hooks,Vue3中也有相应的实现。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:vue3中的hooks总结 - Python技术站

(0)
上一篇 2023年5月28日
下一篇 2023年5月28日

相关文章

  • 结合axios对项目中的api请求进行封装操作

    对项目中的API请求进行封装操作可以提高代码复用率和维护性,同时也能提高代码的可读性和可测试性。 以下是结合axios对项目中的API请求进行封装操作的攻略: 第一步:安装axios 在终端中运行以下命令,安装axios。 npm install axios –save 第二步:创建API请求封装文件 在项目src目录下新建一个api文件夹,用于存放API…

    Vue 2023年5月28日
    00
  • 如何在vue 中引入使用jquery

    在Vue中引入jQuery可以使用以下两种方法: 方法一: 通过cdn引入 Vue的脚手架中默认已经配置了webpack,因此我们可以使用CDN来引入jQuery。只需在index.html中加入以下代码: <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.m…

    Vue 2023年5月28日
    00
  • 前端项目中的Vue、React错误监听

    前端项目中的Vue、React错误监听,是一项非常重要的工作。在开发过程中,难免会出现各种错误,有些错误不及时解决可能会导致应用程序崩溃或无法正常运行。因此,为了尽可能地避免这种情况的发生,在Vue和React项目中及时监听错误,并及时处理和提醒用户是非常必要的。 Vue错误监听的完整攻略: Vue提供了一个全局错误处理函数,可以用来处理项目中的错误,通过在…

    Vue 2023年5月28日
    00
  • vue绑定class与行间样式style详解

    Vue绑定class与行间样式style详解 在Vue中,我们可以通过v-bind指令来绑定元素的class和行间样式style,实现动态控制页面样式的效果。 绑定class 对象语法 在模板中,使用v-bind:class指令来绑定class。当对象中的属性值为true时,class会被应用到元素上,反之该class不会被应用。 示例代码如下: <t…

    Vue 2023年5月27日
    00
  • vue组合式API浅显入门示例详解

    我来为你详细讲解“vue组合式API浅显入门示例详解”的攻略。 1. 什么是Vue组合式API 在Vue 3.x版本中,新增了一种API叫做“组合式API”,它能够让我们更加灵活地组织和复用组件逻辑。我们可以使用组合式API来处理一些复杂、高级的场景,或者是为了提高组件的可读性和可维护性。相较而言,Vue 2.x版本中的选项API则更偏向于面向对象的方式去编…

    Vue 2023年5月28日
    00
  • uni-popup手写菜鸟上门取件时间选择器

    Uni-popup是一个强大的弹出层组件,可以用于实现各种弹出窗口,包括选择器。本攻略将详细讲解如何使用uni-popup手写菜鸟上门取件时间选择器。 第一步:引入uni-popup组件 在页面中引入uni-popup组件,需要在<script>标签中添加如下代码: import uniPopup from ‘@/components/uni-p…

    Vue 2023年5月28日
    00
  • 基于vue-draggable 实现三级拖动排序效果

    当我们需要实现在前端页面中完成三级拖动排序效果的时候,可以使用vue-draggable组件来完成。具体实现步骤如下: 步骤一:安装vue-draggable 首先要安装vue-draggable组件: npm install vuedraggable 步骤二:定义基本结构 在Vue组件中,我们需要定义一些基本的结构,包括三个列表,两个按钮等。可以参考以下代…

    Vue 2023年5月27日
    00
  • Vue学习笔记进阶篇之函数化组件解析

    Vue学习笔记进阶篇之函数化组件解析,主要涉及Vue中的函数化组件,对于Vue的一些高级使用场景有很大的帮助作用。在本篇攻略中,我将为大家详细介绍函数化组件的概念、特点以及使用方法,并且会给出一些实际的使用示例。 什么是函数化组件 函数化组件,简称函数组件,是Vue中一种新的组件书写方式。与传统的Vue组件相比,函数组件去掉了<template>…

    Vue 2023年5月27日
    00
合作推广
合作推广
分享本页
返回顶部