VUE3 之 HOOKS公共方法封装(TS)

场景:在项目开发过程中大概率会出现复用性方法,故为了节省代码量对公共方法进行抽象提取,将其封装为公共方法,以便于在不同组件中快速使用。

举例分页器方法提取:
src下新建hooks文件夹,新增ts文件:
在这里插入图片描述
文件内提取方法:

import { TABLE_PAGE } from '@/core/constants';
import { reactive, ref } from 'vue';type sortParam = {field?: string | null;desc?: number | null;
};export default function useSubTable(param: any) {const subPage = reactive({...TABLE_PAGE});const subQuery = reactive({} as sortParam);const subSearchParam: any = ref({});const subTableLoading = ref<boolean>(false);const subTableData = ref<any[]>([]);const getSubList = () => {if (param?.getSubList) {param.getSubList();}};const subChangePageSize = (size: number) => {subPage.pageSize = size;getSubList();};const subChangeCurrentPage = (pageNum: number) => {subPage.page = pageNum;getSubList();};const subChangeSort = (field: string, order: string) => {subQuery.field = field;subQuery.desc = order === 'asc' ? 0 : order === 'desc' ? 1 : null;getSubList();};const resetSubPage = () => {subPage.page = TABLE_PAGE.page;subPage.pageSize = TABLE_PAGE.pageSize;subPage.total = TABLE_PAGE.total;subQuery.field = null;subQuery.desc = null;subSearchParam.value = {};subTableData.value = [];};const subCommomSearch = () => {subChangeCurrentPage(1);};return {subPage,subQuery,subSearchParam,subChangePageSize,subChangeCurrentPage,subChangeSort,subCommomSearch,resetSubPage,subTableLoading,subTableData};
}

组件内使用:

import useSubTabel from "@/hooks/useSubTable";
//结构需要使用的方法
const {subPage,subSearchParam,subChangePageSize,subChangeCurrentPage,resetSubPage,subCommomSearch,subTableLoading,subTableData
} = useSubTabel({getSubList
});

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/780412.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ubuntu22.04,放弃ibus,改用fcitx5

ubuntu22.04,放弃ibus,改用fcitx5 放弃ibus原因&#xff1a; 切换到中文输入法时&#xff0c;总是将选中的文字 删除了 &#xff0c;也有时候莫名其妙会删除文字在中文输入法下&#xff0c;光标总是没有感觉用久了&#xff0c; 切换到中文输入法会停留在切换界面 至少3秒在浏…

每日一篇 3.30

preview:预览 release the feature&#xff1a;发布功能 convincing human voice&#xff1a;令人信服的人声 raising the specter of deepfake risks:引发了深度造假风险的担忧 sharing early demos&#xff1a;分享早期演示 a small-scale &#xff1a;小规模 rollout of…

基于Web的社区医院管理服务系统的设计与实现|Springboot+ Mysql+Java+ B/S结构(可运行源码+数据库+设计文档)

本项目包含可运行源码数据库LW&#xff0c;文末可获取本项目的所有资料。 推荐阅读100套最新项目持续更新中..... 2024年计算机毕业论文&#xff08;设计&#xff09;学生选题参考合集推荐收藏&#xff08;包含Springboot、jsp、ssmvue等技术项目合集&#xff09; 1. 系统功能…

wordpress插件,免费的wordpress插件

WordPress作为世界上最受欢迎的内容管理系统之一&#xff0c;拥有庞大的插件生态系统&#xff0c;为用户提供了丰富的功能扩展。在内容创作和SEO优化方面&#xff0c;有一类特殊的插件是自动生成原创文章并自动发布到WordPress站点的工具。这些插件能够帮助用户节省时间和精力&…

[幻灯片]软件需求设计方法学全程实例剖析-03-业务用例图和业务序列图

DDD领域驱动设计批评文集 做强化自测题获得“软件方法建模师”称号 《软件方法》各章合集 pdf已上传至本号的CSDN资源&#xff0c;或到以下地址下载&#xff1a; http://umlchina.com/training/umlchina_03_bm.pdf

ubuntu环境下安装perf工具

检查当前环境内核的版本&#xff0c;执行如下命令&#xff1a; uname -a输出信息如下&#xff1a; Linux jackie-ubuntu 5.4.0-26-generic #30-Ubuntu SMP Mon Apr 20 16:58:30 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux安装perf工具&#xff0c;执行如下命令&#xff1a; s…

开源模型应用落地-baichuan2模型小试-入门篇(三)

一、前言 相信您已经学会了如何在Windows环境下以最低成本、无需GPU的情况下运行baichuan2大模型。现在,让我们进一步探索如何在Linux环境下,并且拥有GPU的情况下运行baichuan2大模型,以提升性能和效率。 二、术语 2.1. CentOS CentOS是一种基于Linux的自由开源操作…

Kubernetes入门:构建和管理容器化应用的强大工具

引言 在当今快速发展的科技领域中&#xff0c;容器化技术已经成为构建和管理应用程序的重要工具。随着应用程序规模的增长和复杂性的提高&#xff0c;传统的部署和管理方法已经无法满足日益增长的需求。因此&#xff0c;容器化技术的出现为软件开发和运维带来了全新的解决方案…

微服务demo(四)nacosfeigngateway

一、gateway使用&#xff1a; 1、集成方法 1.1、pom依赖&#xff1a; 建议&#xff1a;gateway模块的pom不要去继承父工程的pom&#xff0c;父工程的pom依赖太多&#xff0c;极大可能会导致运行报错&#xff0c;新建gateway子工程后&#xff0c;pom父类就采用默认的spring-b…

OSPF之单区域配置

文章目录 单区域配置项目背景项目分析拓扑图配置思路基础配置命令查看路由器接口IP地址信息OSPF配置 测试PC1与PC2互通查看OSPF邻居表修改OSPF路由器的router-id完美的OSPF配置命令写法常用查询命令 单区域配置 项目背景 企业内部存在多个部门&#xff0c;分别属于不同的网段…

揭秘谷歌Gemini Pro 1.5:如何免费体验处理超长对话的AI模型?

最近Google发布大模型API&#xff0c;让人有点想哭的那种。 他们发布了Gemini Pro&#xff0c;这个东西的免费key每分钟能调用60次&#xff01; 想想看&#xff0c;这速度&#xff0c;比GPT-3.5以前的免费key快了30倍不止。 而且&#xff0c;更厉害的是&#xff0c;即使是Ge…

Linux log of erros

I) Linux command 1.1 to give the value, no need space after equality operator yes: num2“W3Cschool” no: num2 “W3Cschool” 1.2 true and false in Linux, which is contrary with C language In Linux: 0 true 1 false At C: 0 false 1 true 1.3 II) Linux Sh…

Redisson源码研究

Redisson源码研究 主要分析RedissonLock Override public boolean tryLock(long waitTime/** 等待时间**/, long leaseTime/** TTL时间 **/, TimeUnit unit/** 时间单位 **/) throws InterruptedException {long time unit.toMillis(waitTime);long current System.current…

vue+elementUI搭建动态表头的表格

前提&#xff1a;以下代码是vue2项目结合elementUi完成的 数据结构 后端传来的数据是两个list&#xff0c;一个表头的list&#xff0c;一个表格内容的list // 表头 headTableAtts: [{ columnLabel: 姓名, columnName: name },{ columnLabel: 年龄, columnName: age },{ colu…

【深耕 Python】Data Science with Python 数据科学(2)jupyter-lab和numpy数组

关于数据科学环境的建立&#xff0c;可以参考我的博客&#xff1a;【深耕 Python】Data Science with Python 数据科学&#xff08;1&#xff09;环境搭建 Jupyter代码片段1&#xff1a;简单数组的定义和排序 import numpy as np np.array([1, 2, 3]) a np.array([9, 6, 2, …

2549. 统计桌面上的不同数字

2549. 统计桌面上的不同数字 题目链接&#xff1a;2549. 统计桌面上的不同数字 代码如下&#xff1a; class Solution { public://参考&#xff1a;https://leetcode.cn/problems/count-distinct-numbers-on-board/solutions/2080589/shu-xue-o1-jie-by-endlesscheng-hucn// …

堆和栈的空间差异

先来一段这样的代码&#xff1a; #include <stdio.h> //堆和栈的差异 char* print_stack(){char c[100]"hhhhhhhhhhhhhhhhh";//这里c算是一个指针puts(c);char *p;pc;return p; } int main() {char *p;p print_stack();puts(p);return 0; } 执行之后的结果&…

中国象棋AI在线对弈游戏源码

源码介绍 这是一款html5小游戏&#xff0c;主要功能在于js&#xff0c;带一套皮肤、内置ai算法&#xff0c;有能力的可以自行修改。 源码截图 下载地址 链接&#xff1a;https://pan.baidu.com/s/1fYp1HWsd91nJOdX1M8RFtQ?pwdh2iz 提取码&#xff1a;h2iz

C#——系统学习(LINQ)

C#中的LINQ (Language Integrated Query) LINQ&#xff08;Language Integrated Query&#xff09;是C#中一项强大的功能&#xff0c;它将查询功能无缝集成到C#语言中&#xff0c;使得开发者能够以一致且简洁的方式处理各种数据源&#xff0c;如内存中的集合、数据库、XML文档…

Centos JDK1.8 下载安装

https://www.oracle.com/java/technologies/javase/javase8u211-later-archive-downloads.html 一 RPM包安装 rpm -ivh jdk-8u391-linux-x64.rpm /etc/profile export JAVA_HOME/usr/java/jdk1.8.0-x64 export PATH$JAVA_HOME/bin:$PATHsource /etc/profile二 tar.gz 包手动…