Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

vue3 hooks

作者:若离   发布日期:2025-05-20   浏览:78

// Vue 3 Hooks 示例代码

// 引入 Vue 和 Composition API
import { ref, onMounted, onUnmounted } from 'vue';

// 定义一个自定义 hook 函数
function useMousePosition() {
  // 使用 ref 创建响应式数据
  const x = ref(0);
  const y = ref(0);

  // 定义更新鼠标位置的函数
  function update(event) {
    x.value = event.pageX;
    y.value = event.pageY;
  }

  // 在组件挂载时添加事件监听器
  onMounted(() => {
    window.addEventListener('mousemove', update);
  });

  // 在组件卸载时移除事件监听器
  onUnmounted(() => {
    window.removeEventListener('mousemove', update);
  });

  // 返回响应式数据
  return { x, y };
}

// 使用自定义 hook 的组件示例
export default {
  setup() {
    // 调用自定义 hook 函数
    const { x, y } = useMousePosition();

    // 返回要暴露给模板的数据
    return {
      x,
      y
    };
  }
}

解释说明:

  1. 引入 Vue 和 Composition API

    • ref:用于创建响应式数据。
    • onMountedonUnmounted:生命周期钩子,分别在组件挂载和卸载时执行。
  2. 定义自定义 hook 函数 useMousePosition

    • 创建两个 ref 变量 xy 来存储鼠标的 X 和 Y 坐标。
    • 定义 update 函数来更新这些坐标。
    • 使用 onMounted 添加 mousemove 事件监听器,使用 onUnmounted 移除它,以确保不会产生内存泄漏。
    • 返回 xy 作为响应式数据。
  3. 使用自定义 hook 的组件

    • setup 函数中调用 useMousePosition,并将返回的 xy 暴露给模板。

上一篇:vue路由跳转

下一篇:vue3 axios

大家都在看

vue.config.js configu

node.js vue

vue查看版本

vue等待几秒

vue3 setup computed

vue screenfull

vue json.stringify

vue 遍历list

typescript vue

vue 复选框

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站