经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » JS/JS库/框架 » Vue.js » 查看文章
Vue3项目中的hooks的使用教程
来源:jb51  时间:2022/8/1 13:08:47  对本文有异议

今天我们稍微说一下 vue3 项目中的 hooks 的使用,其实这个 hooks 呢是和 vue2 当中的 mixin 是类似的,学习过 vue2 的小伙伴一定对 mixin 一定比较熟悉,就算没用过也一定了解过,也就是混入,通过 mixin 混入来分发 vue 组件中的可复用功能。一个混入对象可以包含任意组件选项。当组件使用混入对象时,所有混入对象的选项将被“混合”进入该组件本身的选项。而 vue2 的 hooks 函数与 mixin 混入的区别,主要是 hooks 是函数。

hooks 特点

vue3 中的 hooks 函数相当于 vue2 里面的 mixin 混入,不同在于 hooks 是函数。

vue3 中的 hooks 函数可以提高代码的复用性,能够在不同的组件当中都利用 hooks 函数。

hooks 函数可以与 mixin 连用,但是不建议。

hooks 基本使用

首先我们不管 hooks 哈,我们先写一个小功能,就是获取页面的宽高值,这个是讲解 hooks 的常用案例了,都是老演员了,我们也来整一个。

我不啰嗦了,直接写代码吧。

  1. <template>
  2. <h3>hooks</h3>
  3.  
  4. <p>页面宽度: {{screen.width}}</p>
  5. <p>页面高度: {{screen.height}}</p>
  6.  
  7. <el-button @click="getWH">获取页面的宽高</el-button>
  8. </template>
  9. <script setup>
  10. import { reactive } from 'vue'
  11.  
  12. const screen = reactive({
  13. width: 0,
  14. height: 0
  15. })
  16.  
  17. const getWH = () => {
  18. screen.width = document.documentElement.clientWidth
  19. screen.height = document.documentElement.clientHeight
  20. }
  21.  
  22. </script>
  23. <style scoped>
  24.  
  25. </style>

上面的代码其实很简单了就,有两个标签,显示可视页面的长度和宽度,然后有一个按钮获取最新的长宽进行显示。

这个功能是可以顺利实现的哈。如果我们需要在另一个页面也想实现这个功能的话,也很简单,在直接把上面的代码复制一下到另一个需要实现的页面就可以了。

但是

有没有发现一个问题,就是一个页面需要就复制一遍,一个页面需要就复制一遍,如果有一百个页面就复制一百遍,代码一两行还好,如果是一个超级庞大的工具类,那么在像这样实现的话,是不是就过于复杂了,而且还不好实现,那这个问题怎么解决呢?啊哈哈哈哈,没错了宝子们,就是 hooks 。

我们针对上面的案例,我们使用 hooks 简单的实现一下。

首先,我们在 src 文件夹下创建一个 hooks 文件夹。

在 hooks 文件夹下创建一个文件,名字就叫做 useScreenWh.js 文件

接下来就很简单了,我们把获取可视化界面的代码放进这个 js 文件,然后导出去,给其他页面使用就可以了。

  1. import { reactive } from 'vue'
  2.  
  3. export default function () { // 导出一个默认方法
  4.  
  5. // 创建一个对象,保存宽度和高度值
  6. const screen = reactive({
  7. width: 0,
  8. height: 0
  9. })
  10.  
  11. // 创建一个方法,获取可视化界面的宽度和高度值
  12. const getWH = () => {
  13. screen.width = document.documentElement.clientWidth
  14. screen.height = document.documentElement.clientHeight
  15. }
  16.  
  17. return { screen, getWH } // 方法返回宽高值
  18. }

然后在需要使用 hooks 的文件引入就可以使用了。

  1. <template>
  2. <h3>hooks</h3>
  3.  
  4. <p>页面宽度: {{screen.width}}</p>
  5. <p>页面高度: {{screen.height}}</p>
  6.  
  7. <el-button @click="getWH">获取页面的宽高</el-button>
  8.  
  9. </template>
  10. <script setup lang="ts">
  11.  
  12. // 导入 hooks
  13. import screenWH from '../hooks/useScreenWh.js'
  14.  
  15. // 因为 screenWH 是一个导出的方法,所以需要调用一下子,然后顺便解构一下就可以在模板使用了。
  16. let { screen, getWH } = screenWH()
  17.  
  18. </script>
  19. <style scoped>
  20.  
  21. </style>

好了,我们保存看一下效果。

和之前是完全一样的。

到此这篇关于Vue3项目中的hooks的使用教程的文章就介绍到这了,更多相关Vue3 hooks内容请搜索w3xue以前的文章或继续浏览下面的相关文章希望大家以后多多支持w3xue!

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号