场景

有些时候,我们需要将一个页面拆分成各个模块。
这些模块包含增加,删除,修改,等
并且这些模块会处理非常复杂的业务逻辑问题
所以,我们最好是将他们分开。

如何将分离新增模块拆离出去

主页面
<template>
<div>
<el-button @click="addHanlder">新增</el-button>
<ul>
<li v-for="item in listArr" :key="item.id"> {{ item.name }} </li>
</ul>
</div>
</template>
<script lang="ts" setup>
import { ref} from 'vue'
// 导入新增模块的业务逻辑,注意不能够写成add.ts
import addHooks from './add'
// 定义接口
interface listType{
name?:string,
age ?:number,
id:string,
// 可以有任意多个字段-任意类型
[propN:string]:any,
}
let listArr=ref<listType[]>([
{name:'张三',age:21,id:'001'},
{name:'李四',age:20,id:'002'},
{name:'周六',age:28,id:'004',aa:'xx'},
])
// 使用新增模块
let { addHanlder }=addHooks(listArr.value);
</script>
add.ts文件
// 新增功能的逻辑
// 注意这里需要说明listArr的参数类型哈 { name?: string; age?: number; id: string }[]
function addHooks(listArr: { name?: string; age?: number; id: string }[]) {
function addHanlder() {
listArr.push(
{name:'王五',age:24,id:'005'}
)
}
return {
addHanlder
}
}
export default addHooks

vue3.2如何将写hooks呢?的更多相关文章

  1. vue3 一些关键属性

    环境搭建 尤大开发了一个项目构建工具vite npm init vite-app <project-name> cd <project-name> npm install np ...

  2. 更优雅的使用Git

    JavaScript之禅已经发过两篇 Git 相关的文章了.一篇文章,教你学会Git :浅显易懂,如果你还不会 Git 可以先去看看.Git的奇技淫巧 :介绍了一些实用的操作.今天为大家带来第三篇,如 ...

  3. git使用上

    因为最近工作上多处都用到了基于 Git 的开发,需要深入理解 Git 的工作原理,以往的 Git 基本知识已经满足不了需求了,因此写下这篇 Git 进阶的文章,主要是介绍了一些大家平时会碰到但是很少去 ...

  4. gitlab + php自动部署

    功能简介 本地往服务器推送代码之后,触发web钩子,服务器拉取刚刚推送的代码 步骤 1.在gitlab后台配置钩子 项目->编辑项目->Web钩子->新增钩子 2.在服务器端为www ...

  5. Vue2 element-ui组件二封-表单组件-效果展示

    vue2已经落后了? 不着急, vue3的也在写的过程中, 只是发出来vue2的一些组件 系列说明: > 编写原因 vue2在很多人眼里已经快过时了, 而我一直想写一些总结, 但是从两年前到现在 ...

  6. vite vue3 规范化与Git Hooks

    在 <JS 模块化>系列开篇中,曾提到前端技术的发展不断融入很多后端思想,形成前端的"四个现代化":工程化.模块化.规范化.流程化.在该系列文章中已详细介绍了模块化的发 ...

  7. 我居然不知道Vue3可以使用hooks函数实现代码复用?

    每天都要开心(▽)哇: 项目开发过程中,我们会遇到一些情况,就是多个组件都可以重复使用的一部分代码逻辑,功能函数,我们想要复用,这可怎么办呢? VUE2我们是怎么做的呢? 在vue2 中有一个东西:M ...

  8. Vue3语法快速入门以及写一个倒计时组件

    Vue3写一个倒计时组件 vue3 beta版本发布已有一段时间了,文档也大概看了一下,不过对于学一门技术,最好的方法还是实战,于是找了一个比较简单的组件用vue3来实现,参考的是vant的count ...

  9. Vue3 Composition API写烦了,试试新语法糖吧—setup script

    前言 Vue3发布近一年了,相信大家对Vue3的新特性,新语法都很熟悉了.那么在使用Composition API的过程中,有没有觉得整个过程比较繁琐.比如你的模板里用到了大量的state和方法的时候 ...

  10. 写webpack插件报警告Tapable.plugin is deprecated. Use new API on .hooks instead解决方案,webpack4插件新写法

    最近写了个小插件报了个警告,然后去百度了一下,全都给我说extract-text-webpack-plugin这个插件有问题要更新,我也是无语了,这个插件我用都没用,百度翻了下齐刷刷全是这个答案,搞得 ...

随机推荐

  1. 资深Linux 系统管理员常用的15个很好用的Cron工作示例

    摘要:Linux Cron 实用程序是一种在特定时间和/或日期持续调度例行后台作业的有效方法.这篇文章讲述了15 个很好用的 crontab 工作调度示例. 本文分享自华为云社区<Linux C ...

  2. ​五大不良 coding 习惯,你占了几样?

    在之前的文章中,我们一起解读了2021年数据成本报告.根据 IBM 和 Ponemon Institute 2021年的报告,全球平均数据泄露成本约为424万美元.为了降低数据泄露造成的成本,企业可以 ...

  3. 火山引擎DataTester分享:A/B实验中常见的8个错误

    火山引擎DataTester是科学可信的A/B测试与智能优化平台,源自字节跳动长期沉淀,能够深度耦合推荐.广告.搜索.UI.产品功能等多种行业场景需求,为业务增长.转化.产品迭代,运营提效等各环节提供 ...

  4. Java SpringBoot Bean InitializingBean 项目初始化

    Spring中有两种类型的Bean,一种是普通Bean,另一种是工厂Bean,即FactoryBean.工厂Bean跟普通Bean不同,其返回的对象不是指定类的一个实例,其返回的是该工厂Bean的ge ...

  5. Sublime Text 16进制显示

    大文件推荐使用 UltraEdit 工具 Sublime Text 16进制显示(可以直接显示不同数据类型转换后的结果,不用在线工具,转二进制了) 安装 HexViewer 插件 1. Ctrl + ...

  6. leaflet marker 旋转

    leaflet.markerRotation.js 代码(这段代码是从插件 leaflet.polylineDecorator.js 中复制的): // leaflet 实现 marker 旋转 (f ...

  7. Windows 端使用 C++ 服务操作类

    #pragma once #include <windows.h> #include <string> // #include <iostream> class S ...

  8. ZOJ 3537 Cake (凸包 + 区间DP && 最优三角形剖分)

    题目链接:Here 题意: 给定 \(n\)​​ 个点的坐标,先问这些点能否组成一个凸包,如是凸包,问用不相交的线来切这个凸包使得凸包只由三角形组成,根据 \(cost_{i, j} = |x_i + ...

  9. Missing return type on function. eslint(@typescript-eslint/explicit-module-boundary-types))

    setup报错: 解决办法:

  10. Vue源码编译过程

    Vue源码编译过程一.挂载初始化$mounted会挂载组件,不存在 render 函数时需要编译(compile);二.compile1.compile 分为 parse,optimize 和 gen ...