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

Vue3的自定义Hooks

在Vue3中,没有了data和methods,数据和方法不再强制的卸载对应的前者当中。数据和方法可以写在相近位置,以便后续的维护及复用

<template><div>{{ sum }}</div><button @click="addSum">+1</button><div>{{ result }}</div><button @click="reducerel">-1</button>
</template><script setup>import { ref } from 'vue'//自增let sum = ref(0)function addSum() {sum.value += 1}//自减let result = ref(10)function reducerel(){result.value -= 1}
</script>

当一个功能的所牵涉到的数据和方法过多,而且这个页面的类似功能也有很多,那这个页面的代码虽然照上述的方法做了区分,但是维护起来还是挺头疼的。

那么有没有一种方法让一个代码文件都是一个功能牵扯到的所有的数据和方法,主页再进行调用,这样如果后续我要维护相关的功能的话,我就可以直接在这个代码页面进行维护就好了?有的!那就是 Hooks

首先需要在src目录下创建hooks文件,在向其中建立各种的js或ts文件,文件名可以使用use+功能名的形式

->src->hooks->useAdd.ts->useReduce.ts

其后就可以将相关功能的数据及方法写到相关的文件里

比如我拆分开头的代码中的 addSum 的相关功能

useAdd.ts

import { ref,onMounted} from 'vue'export default function (){//数据let sum = ref(0)//方法function addSum(){sum.value += 1}//生命周期onMounted(()=>{sum.value += 1})//向外部提供东西,以至于将封装好的数据方法可以在外部使用return { sum,addSum }
}

拆分之后就是要引入使用

<template><div>{{ sum }}</div><button @click="addSum">+1</button><div>{{ result }}</div><button @click="reducerel">-1</button>
</template><script setup>import { ref } from 'vue'import useAdd from '@/hooks/useAdd' //引入自定义的hooks//自增//let sum = ref(0)//function addSum() {//    sum.value += 1//}const { sum,addSum } = useAdd() //注入  到这关于addSum的整个功能可以正常使用了//自减let result = ref(10)function reducerel(){result.value -= 1}
</script>

http://www.dtcms.com/a/529281.html

相关文章:

  • Java的方法引用
  • 一个AVX的快速求向量余弦函数
  • 合肥优化网站哪家公司好网页打不开是什么问题
  • 去国外网站开发客户中的contact us 没有邮箱爱南宁app下载
  • MySQL 的各种关联查询(JOIN)
  • h5游戏免费下载:水果忍者
  • 有什么网站可以做微信支付宝支付宝视频模板免费制作
  • 基于单片机的智能厨房环境控制系统设计
  • 某公司网站建设策划书html中文美食网站模板
  • 多源bfs
  • ESP32使用笔记(基于IDF):小智AI项目ESP32二次开发指南
  • RT-Thread Nano版本在GD32F527I-EVAL评估板的移植
  • 网站的优势是什么意思杭州网站建设哪家快速上线
  • AI大模型:(二)6.2 YOLO模型训练实践及目标跟踪
  • 手机端网站关键词排名内衣网站建设推广
  • Python第三方库pip和conda指令无法下载某些库解决办法
  • 网站套餐表格模板怎么做蛋糕店的网站
  • 哪里建设网站最好用做图的兼职网站
  • 为歌手做的个人网站seo编辑培训
  • 学习从0开始使用内网穿透工具cpolar(个人记录、详细图解)
  • wordpress模板免费win7优化大师官网
  • Linux 文本处理“三剑客”:sed命令完全指南
  • Graph + Agents 融合架构:2025年七大创新路径
  • 临沂网站制作费用如何做自己公司网站
  • STM32H723ZGT6 ADC+DMA多通道-老是进入DMA中断错误函数且不进入adc回调函数总结
  • 成毅李一桐《天地剑心》今日开播 热血群像演绎东方英雄故事
  • Atlas 200I A2 加速模块-GPU适配
  • 石家庄职业技术学院教务网络管理系统三明网站优化
  • 【经典书籍】C++ Primer 第18章如何设计一个“好用、好看、好改”的函数精华讲解
  • Qt Creator:避免QRunnable和QObject多重继承