当前位置: 首页 > news >正文

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>

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • ​探讨元宇宙和VR虚拟现实之间的区别​
  • Matlab课程设计——手指静脉识别项目
  • 项目名称:C语言在线学习平台(README)
  • nginx配置文件说明
  • 一文掌握Prometheus实现页面登录认证并集成grafana
  • 小程序图片下载保存方法,图片源文件保存!
  • 用python去爬取小说网址的小说保存到本地全过程
  • 【接口自动化_09课_大量响应报文处理及加解密、签名处理】
  • Kafka系列之:Kafka存储数据相关重要参数理解
  • Nginx 不转发请求 IP
  • tinymce富文本支持word内容同时粘贴文字图片上传 vue2
  • Framework源码面试之Handler面试集合
  • Laravel+swoole 实现websocket长链接
  • Netty Websocket
  • 【数据结构进阶】二叉搜索树
  • -------------------- 第二讲-------- 第一节------在此给出链表的基本操作
  • 【EOS】Cleos基础
  • 2017 年终总结 —— 在路上
  • avalon2.2的VM生成过程
  • JS学习笔记——闭包
  • Making An Indicator With Pure CSS
  • node和express搭建代理服务器(源码)
  • PHP 程序员也能做的 Java 开发 30分钟使用 netty 轻松打造一个高性能 websocket 服务...
  • spring security oauth2 password授权模式
  • SQLServer之创建数据库快照
  • 基于Volley网络库实现加载多种网络图片(包括GIF动态图片、圆形图片、普通图片)...
  • 看图轻松理解数据结构与算法系列(基于数组的栈)
  • 使用parted解决大于2T的磁盘分区
  • 腾讯视频格式如何转换成mp4 将下载的qlv文件转换成mp4的方法
  • 通信类
  • 移动端高清、多屏适配方案
  • ​ssh-keyscan命令--Linux命令应用大词典729个命令解读
  • #[Composer学习笔记]Part1:安装composer并通过composer创建一个项目
  • #每天一道面试题# 什么是MySQL的回表查询
  • (31)对象的克隆
  • (7)摄像机和云台
  • (ZT) 理解系统底层的概念是多么重要(by趋势科技邹飞)
  • (安全基本功)磁盘MBR,分区表,活动分区,引导扇区。。。详解与区别
  • (附源码)基于SSM多源异构数据关联技术构建智能校园-计算机毕设 64366
  • (回溯) LeetCode 40. 组合总和II
  • (机器学习-深度学习快速入门)第一章第一节:Python环境和数据分析
  • (九)c52学习之旅-定时器
  • (欧拉)openEuler系统添加网卡文件配置流程、(欧拉)openEuler系统手动配置ipv6地址流程、(欧拉)openEuler系统网络管理说明
  • (七)c52学习之旅-中断
  • (十一)c52学习之旅-动态数码管
  • ***检测工具之RKHunter AIDE
  • .helper勒索病毒的最新威胁:如何恢复您的数据?
  • .net core 实现redis分片_基于 Redis 的分布式任务调度框架 earth-frost
  • .Net MVC + EF搭建学生管理系统
  • .NET 设计模式—简单工厂(Simple Factory Pattern)
  • .NET下的多线程编程—1-线程机制概述
  • .Net下使用 Geb.Video.FFMPEG 操作视频文件
  • .xml 下拉列表_RecyclerView嵌套recyclerview实现二级下拉列表,包含自定义IOS对话框...
  • @JsonFormat与@DateTimeFormat注解的使用
  • []T 还是 []*T, 这是一个问题