【vue3】自定义hook函数

这篇具有很好参考价值的文章主要介绍了【vue3】自定义hook函数。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

假期第三篇,对于基础的知识点,我感觉自己还是很薄弱的。
趁着假期,再去复习一遍

【vue3 】hook函数

hook本质上是一个函数,把setup中使用的Composition API进行了封装

假设需求是获取当前点击时鼠标的坐标

<template>
  <div>
    <h2>当前求和的值为:{{ sum }}</h2>
    <button @click="sum++">点我+1</button>
    <hr />
    <h2>当前点击时鼠标的坐标为:x:{{ point.x }},y:{{ point.y }}</h2>
  </div>
</template>
<script >
import { ref, reactive, onMounted, onBeforeMount } from "vue";
export default {
  name: "demo",
  setup() {
    let sum = ref(0);
    let point = reactive({
      x: 0,
      y: 0,
    });
    onMounted(() => {
      window.addEventListener("click", savePoint);
    });
    onBeforeMount(() => {
      window.removeEventListener("click", savePoint);
    });
    function savePoint(event) {
      (point.x = event.pageX), (point.y = event.pageY);
    }
    return {
      sum,
      point,
    };
  },
};
</script>

【vue3】自定义hook函数,javascript,vue.js,前端
假设还有其他页面也需要用到点击鼠标求坐标的需求,那就可以把这些代码都放到hook函数中,实现代码的复用
【vue3】自定义hook函数,javascript,vue.js,前端
src下新建hoos文件夹,新建usePoint.js,有两种写法

写法1:

import {  reactive, onMounted, onBeforeMount } from "vue";

function savePoint() {
     let point = reactive({
      x: 0,
      y: 0,
    });
    onMounted(() => {
      window.addEventListener("click", savePoint);
    });
    onBeforeMount(() => {
      window.removeEventListener("click", savePoint);
    });
    function savePoint(event) {
      (point.x = event.pageX), (point.y = event.pageY);
    }
    return {
        point
    }
}
 export default savePoint

在页面中使用

<template>
  <div>
    <h2>当前求和的值为:{{ sum }}</h2>
    <button @click="sum++">点我+1</button>
    <hr />
    <h2>当前点击时鼠标的坐标为:x:{{ point.x }},y:{{ point.y }}</h2>
  </div>
</template>
<script >
import { ref} from "vue";
import savePoint from "./hooks/usePoint";
export default {
  name: "demo",
  setup() {
    let sum = ref(0); 
    const { point } = savePoint();
    watch(point, (newVal, oldVal) => {
      console.log("point变了", newVal, oldVal);
    });
    return {
      sum,
      point,
    };
  },
};
</script>

【vue3】自定义hook函数,javascript,vue.js,前端
写法2:

import {  reactive, onMounted, onBeforeMount } from "vue";
 export default function () {
     let point = reactive({
      x: 0,
      y: 0,
    });
    onMounted(() => {
      window.addEventListener("click", savePoint);
    });
    onBeforeMount(() => {
      window.removeEventListener("click", savePoint);
    });
    function savePoint(event) {
      (point.x = event.pageX), (point.y = event.pageY);
     }
     return point
}

在页面中使用

<template>
  <div>
    <h2>当前求和的值为:{{ sum }}</h2>
    <button @click="sum++">点我+1</button>
    <hr />
    <h2>当前点击时鼠标的坐标为:x:{{ point.x }},y:{{ point.y }}</h2>
  </div>
</template>
<script >
import { ref } from "vue";
import usePoint from "./hooks/usePoint";
export default {
  name: "demo",
  setup() {
    let sum = ref(0);
    let point = usePoint();
    watch(point, (newVal, oldVal) => {
      console.log("point变了", newVal, oldVal);
    });
    return {
      sum,
      point,
    };
  },
};
</script>

【vue3】自定义hook函数,javascript,vue.js,前端文章来源地址https://www.toymoban.com/news/detail-729693.html

到了这里,关于【vue3】自定义hook函数的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 助你丝滑过度到 Vue3 生命&自定义hook&toRef ②⑥

    @作者 : SYFStrive   @博客首页 : HomePage 📜: VUE3~TS 📌: 个人社区(欢迎大佬们加入) 👉: 社区链接🔗 📌: 觉得文章不错可以点点关注 👉: 专栏连接🔗 👉 TypeScript (🔥) 👉 微信小程序 (🔥) 👉 UNIAPP开发 (🔥) 提示:以下是本篇文章正文内容 简介 : 2020年9月

    2024年02月15日
    浏览(29)
  • 前端技术Html,Css,JavaScript,Vue3

    1.基本标签 2.文本格式化 3.链接 4.图片 5.无序列表 6.有序列表 7.表格 8.表单 1.选择器 2.文本和字体 3.链接 4.隐藏 5.定位position 6.浮动 7.对齐 8.图像 1.输出 2.函数 3.常用事件 4.DOM 5.改变Html 6.DOM 元素 (节点) 尾部创建新的 HTML 元素 (节点) - appendChild() 头部创建新的 HTML 元素 (节点)

    2024年02月13日
    浏览(43)
  • Vue3 Vue-Router详解 Vue3配置hash 和 history路由、Vue3封装的路由hook函数(useRouter,useRoute)的使用 路由懒加载、路由分包处理、魔法注释的使用

     html部分 js部分  html页面使用路由传来的参数  获取router跳转id 获取 路由跳转错误地址

    2024年02月11日
    浏览(34)
  • 【前端技术】Vue3 01:初识 Vue.js

    Vue 可以说是非常流行了,至少在国内是这样,他是个轻量级的 JavaScript 框架,非常适合构建大型和中小型的 Web 应用程序,如果想和前端打交道,应该绕不过这个框架吧。 目录 1 Vue.js 介绍 2  IDE 选择 2.1 vscode 2.2 WebStorm 2.3 Eclipse 3  创建 Vue 应用 3.1 本地脚手架创建 ① 安装

    2024年02月02日
    浏览(47)
  • 前端(四)——vue.js、vue、vue2、vue3

    😊博主:小猫娃来啦 😊文章核心: vue.js、vue、vue2、vue3从全局到局部 Vue.js是一款流行的JavaScript框架 vue,vue2,vue3都是vue.js的不同版本。 Vue:Vue.js的第一个版本,也称为Vue 1.x。它于2014年首次发布,并获得了广泛的应用和认可。 Vue2:Vue.js的第二个版本,也称为Vue 2.x。它在Vu

    2024年02月12日
    浏览(47)
  • 若依前端Vue3模板——自定义主题+炫彩主题

    实现结果 实现步骤 默认主题的设置 文件位置: src/settings.js 布局设置 图标文件 文件位置: src/assets/images/blue.svg 复制同级的 light.svg 修改名称即可,将两个颜色替换为:#409eff 布局组件 文件位置: src/layout/components/Settings/index.vue template模板中添加控件如下 新增一个主题风格选

    2024年02月14日
    浏览(34)
  • 前端HTML、CSS、JS、VUE3 汇总

    学习https://developer.mozilla.org/zh-CN/docs/Learn/CSS 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 使用VS Code运行前端代码 在VS Code上安装前端插件 正在更新中~ ✨ 提示:这里可以添加本文要记录的大概内容: 学习路线 知识定位 HTML基础 标签、表格、表单、

    2024年02月13日
    浏览(40)
  • 前端笔记之vue3 之 render函数和createVNode函数使用

    初学vue3的时候倒是扒了一点点源码,似是而非,而且一直做的工作都是很简单的功能,怎么说呢,ui框架也几乎让我很容易的就可以写出一个成型的页面,有时就忘了初学的时候的一些心得。 本内容只说createVNode函数的用法,不做源码探究 效果图: 虽然在日常中这么写特别

    2024年02月07日
    浏览(36)
  • vue3前端excel导出;组件表格,自定义表格导出;Vue3 + xlsx + xlsx-style

    当画面有自定义的表格或者样式过于复杂的表格时,导出功能可以由前端实现 1. 使用的插件 : sheet.js-xlsx 文档地址:https://docs.sheetjs.com/ 中文地址:https://geekdaxue.co/read/SheetJS-docs-zh/README.md xlsx-style:https://www.npmjs.com/package/xlsx-style 2. 安装引用 安装插件-vue3 引用插件 3. 组件表格

    2024年04月26日
    浏览(33)
  • vue3+elementPlus:前端自定义el-tree图标icon

    重点:template蒙版下svg和use,然后前端遍历添加key和value,取判断放图标 HTML结构:el-tree里面包裹template(关键点) 方法一:使用for循环 for循环数据,前端自定义tree图标第一种方法,后端key没有icon字段,自己添加 方法二: 使用map遍历 直接map遍历前端自定义tree图标 作者上一

    2024年02月15日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包