Composition API实现逻辑复用

  • 抽离逻辑代码到一个函数
  • 函数命名约定为useXxxx格式(react Hooks也是)
  • 在setup中去引用这个函数

如下经典鼠标位置例子:

// useMousePosition.ts
import { onMounted, onUnmounted, ref } from "vue";

const useMousePosition = () => {
    const x = ref(0);
    const y = ref(0);

    function mousemoveHandler(e: MouseEvent) {
        x.value = e.pageX;
        y.value = e.pageY;
    }

   onMounted(() => window.addEventListener('mousemove', mousemoveHandler));
   onUnmounted(() => window.removeEventListener('mousemove', mousemoveHandler));

    return { x, y }
}
export default useMousePosition;

// index.vue
<template>
    <div>
        position - x: {{ x }}, y: {{ y }}
    </div>
</template>

<script lang="ts">
import useMousePosition from './useMousePosition';

export default {
    setup() {
        const { x, y } = useMousePosition()
        return {
            x,
            y
        }
    }
}
</script>

相关推荐

  1. Composition API实现逻辑复用

    2024-07-23 01:36:01       14 阅读
  2. Vue3 逻辑复用 - 组合式函数

    2024-07-23 01:36:01       60 阅读
  3. MyBatis-Plus实现逻辑删除

    2024-07-23 01:36:01       39 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-23 01:36:01       52 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-23 01:36:01       54 阅读
  3. 在Django里面运行非项目文件

    2024-07-23 01:36:01       45 阅读
  4. Python语言-面向对象

    2024-07-23 01:36:01       55 阅读

热门阅读

  1. 云计算安全技术介绍

    2024-07-23 01:36:01       16 阅读
  2. 杭电第一场

    2024-07-23 01:36:01       15 阅读
  3. Cow coupons

    2024-07-23 01:36:01       14 阅读
  4. ros2--服务接口

    2024-07-23 01:36:01       13 阅读
  5. C/C++内存管理笔记

    2024-07-23 01:36:01       13 阅读
  6. GraphRAG的实践

    2024-07-23 01:36:01       10 阅读
  7. 简单三步实现跨境多种支付

    2024-07-23 01:36:01       11 阅读