您现在的位置是:网站首页> 编程资料编程资料
Vue3 Hooks 模块化抽离示例详解_vue.js_
2023-05-24
379人已围观
简介 Vue3 Hooks 模块化抽离示例详解_vue.js_
正文
Vue3中的Hooks 其实就是业务逻辑的抽离,跟Vue2中mixin 本质上是一样的:将当前组件的业务逻辑抽离到一个公共的文件中,提高逻辑复用性,让当前组件看起来更加清爽,不太一样的地方是我们封装hooks 的时候一般是返回一个函数。
todoList demo
先来看一个简单的例子:todoList demo。
新建一个Vue3+Ts的项目: npm init vite@latest 项目名称:vue3-hooks, 使用TS,然后cd vue3-hooks ->npm install ->npm run dev 然后删除不必要的内容,新建一个type 文件夹存放所有的类型,新建一个TodoList.vue编写我们的业务和视图代码:
目录结构

TodoList.vue代码如下
To do List
添加一条记录:
id 名称 是否完成 {{ item.id }} {{ item.title }} {{ item.isFinished }}
定义的类型文件

interface IntTodoList { id: number; title: string; isFinished: boolean; } export type { IntTodoList }; 逻辑抽离
- 新建一个
hooks文件夹,在hooks文件夹中新建一个todoList.ts文件,将TodoList.vue中的data数据 和onAdd方法 抽离到hooks文件中,并导出:
import { reactive } from "vue"; import { IntTodoList } from "../../type/todoList"; export default () => { type DataType = { list: IntTodoList[]; toAddData: IntTodoList; }; const data = reactive({ list: [], toAddData: { id: 0, title: "", isFinished: false, }, }); const onAdd = () => { data.list.push({ ...data.toAddData, id: data.list.length + 1 }); }; return { data, onAdd} }; 在TodoList.vue 中导入:
To do List
添加一条记录:
id 名称 是否完成 {{ item.id }} {{ item.title }} {{ item.isFinished }}
如果其他组件需要data 数据 和 onAdd 方法,也可以导入hooks 文件使用,而且现在再来看TodoList.vue 文件看上去是不是非常清爽。 功能跟未抽离前是一样的:

以上就是Vue3 Hooks 模块化抽离示例详解的详细内容,更多关于Vue3 Hooks 模块化抽离的资料请关注其它相关文章!
您可能感兴趣的文章:
相关内容
- vue3中defineComponent 的作用详解_vue.js_
- React从命令式编程到声明式编程的原理解析_React_
- react-native 父函数组件调用类子组件的方法(实例详解)_React_
- Ant Design中使用css切换的问题及解决_React_
- Vue表格组件Vxe-table使用技巧总结_vue.js_
- vue3使用vuex实现页面实时更新数据实例教程(setup)_vue.js_
- Vue+Element一步步实现动态添加Input_输入框案例_vue.js_
- uni-app开发案例之video视频组件_javascript技巧_
- Vue项目API接口封装的超详细解答_vue.js_
- JavaScript进阶教程之函数的定义、调用及this指向问题详解_javascript技巧_
