广告
返回顶部
首页 > 资讯 > 精选 >Vue中的Hooks有什么作用
  • 261
分享到

Vue中的Hooks有什么作用

2023-06-29 03:06:05 261人浏览 泡泡鱼
摘要

本篇内容介绍了“Vue中的Hooks有什么作用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Hooks 对于 Vue 意义着什么?Hooks

本篇内容介绍了“Vue中的Hooks有什么作用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

Vue中的Hooks有什么作用

Hooks 对于 Vue 意义着什么?

Hooks 提供了一种更明确的方式来组织代码,使得代码能重用,更重要的是,它允许不同的逻辑部分进行通信、协同工作。【相关推荐:vue.js视频教程

问题背景

Hooks 为什么被提出?就 React 而言,最初的问题背景是这样的:

在表达状态概念时, 是最常见的组织形式。类本身存在一些问题,比如绑定关系冗长、复杂,导致不易读,This 的指向总会让人摸不清头脑;

不仅如此,在重用方面,使用渲染工具或高阶组件类的模式很常见,但这样容易陷入 “pyramid of doom” (末日金字塔),可以将它理解为过度的嵌套关系;

Hooks 就是来解决这些问题的;Hooks 允许我们使用函数调用来定义组件的状态逻辑,这些函数有更强的组合性、重用性;同时,仍然可以进行状态的访问和维护;

示例:@dan_abramov's code from #ReactConf2018

  • 图①

Vue中的Hooks有什么作用

  • 图②

Vue中的Hooks有什么作用

有图①到图②的转变,对组件代码进行了再次组合,然后以函数的的方式进行导出,供外部重用;

在维护方面,Hooks 提供了一种单一的、功能性的方式来处理共享逻辑,并有可能减少代码量。

Vue Hooks

那 Vue 中为什么要用 Hooks 呢?毕竟 Vue 中没有很频繁的使用类;在 Vue 中我们使用 mixin 来解决组件相同的重用逻辑;

mixin 的问题在哪?Hooks 能解决吗?

问题主要有两点:

  • mixin 之间不能传递状态;

  • 逻辑来源并没有清晰的说明;

而这两点,Hooks 能很好地解决;

举个例子:

传递状态

Hooks1

import { useData, useMounted } from 'vue-hooks';export function windowwidth() {  const data = useData({    width: 0  })  useMounted(() => {    data.width = window.innerWidth  })  // this is something we can consume with the other hook  return {    data  }}
  • Hooks2

// the data comes from the other hookexport function loGolettering(data) {  useMounted(function () {    // this is the width that we stored in data from the previous hook    if (data.data.width > 1200) {      // we can use refs if they are called in the useMounted hook      const logoname = this.$refs.logoname;      Splitting({ target: logoname, by: "chars" });      TweenMax.staggerFromTo(".char", 5,        {          opacity: 0,          transfORMOrigin: "50% 50% -30px",          cycle: {            color: ["red", "purple", "teal"],            rotationY(i) {              return i * 50            }          }        },        ...

两个钩子之间传值:

<script>import { logolettering } from "./../hooks/logolettering.js";import { windowwidth } from "./../hooks/windowwidth.js";export default {  hooks() {    logolettering(windowwidth());  }};</script>

我们可以在整个应用程序中使用 Hooks 组合逻辑;

来源清晰

在 src/hooks 文件夹中,创建了一个 Hooks,用于实现:打开对话框查看内容时,暂停页面,并在查看完对话框后,允许再次滚动。

它很有可能在应用程序中被多次使用;

import { useDestroyed, useMounted } from "vue-hooks";export function preventscroll() {  const preventDefault = (e) => {    e = e || window.event;    if (e.preventDefault)      e.preventDefault();    e.returnValue = false;  }  // keycodes for left, up, right, down  const keys = { 37: 1, 38: 1, 39: 1, 40: 1 };  const preventDefaultForScrollKeys = (e) => {    if (keys[e.keyCode]) {      preventDefault(e);      return false;    }  }  useMounted(() => {    if (window.addEventListener) // older FF      window.addEventListener('DOMMouseScroll', preventDefault, false);    window.onwheel = preventDefault; // modern standard    window.onmousewheel = document.onmousewheel = preventDefault; // older browsers, IE    window.touchmove = preventDefault; // mobile    window.touchstart = preventDefault; // mobile    document.onkeydown = preventDefaultForScrollKeys;  });  useDestroyed(() => {    if (window.removeEventListener)      window.removeEventListener('DOMMouseScroll', preventDefault, false);    //firefox    window.addEventListener('DOMMouseScroll', (e) => {      e.stopPropagation();    }, true);    window.onmousewheel = document.onmousewheel = null;    window.onwheel = null;    window.touchmove = null;    window.touchstart = null;    document.onkeydown = null;  });}

在 AppDetails.vue 组件中调用它:

<script>import { preventscroll } from "./../hooks/preventscroll.js";...export default {  ...  hooks() {    preventscroll();  }}</script>

“Vue中的Hooks有什么作用”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

--结束END--

本文标题: Vue中的Hooks有什么作用

本文链接: https://www.lsjlt.com/news/322280.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Vue中的Hooks有什么作用
    本篇内容介绍了“Vue中的Hooks有什么作用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Hooks 对于 Vue 意义着什么?Hooks...
    99+
    2023-06-29
  • vue中setup有什么作用
    本篇内容介绍了“vue中setup有什么作用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!在vue中,使用setup是为了封装复用;setu...
    99+
    2023-06-29
  • React hooks使用规则和作用是什么
    这篇文章主要讲解了“React hooks使用规则和作用是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“React hooks使用规则和作用是什么”吧!useStat...
    99+
    2023-07-05
  • vue的nextTick有什么作用
    这篇文章主要介绍“vue的nextTick有什么作用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“vue的nextTick有什么作用”文章能帮助大家解决问题。为什么要用nextTick请看如下一段代...
    99+
    2023-07-04
  • bootstrap-vue有什么作用
    本篇内容主要讲解“bootstrap-vue有什么作用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“bootstrap-vue有什么作用”吧!   ...
    99+
    2022-10-19
  • vue的el是什么及有什么作用
    本篇内容介绍了“vue的el是什么及有什么作用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!在vue中,el是element的缩写,可称之为...
    99+
    2023-07-04
  • vue组件有什么作用
    本篇内容主要讲解“vue组件有什么作用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“vue组件有什么作用”吧! vue组件的好处:1...
    99+
    2022-10-19
  • vue的options选项有什么作用
    这篇文章主要讲解了“vue的options选项有什么作用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“vue的options选项有什么作用”吧!在vue中,options选项是指“构造选项”...
    99+
    2023-07-04
  • 样式穿透vue中的scoped有什么作用
    这篇文章主要介绍了样式穿透vue中的scoped有什么作用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇样式穿透vue中的scoped有什么作用文章都会有所收获,下面我们一起来看看吧。scoped的使命与作用这...
    99+
    2023-07-02
  • vue中vue-full-calendar的作用是什么
    vue-full-calendar是一个基于Vue.js的全功能日历插件,可以用于展示、创建、编辑和删除事件。它提供了丰富的配置选项...
    99+
    2023-09-22
    vue
  • vue作用域插槽有什么用
    这篇文章给大家分享的是有关vue作用域插槽有什么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。作用域插槽利用好作用域插槽可以做一些很有意思的事情,比如定义一个基础布局组件A,只...
    99+
    2022-10-19
  • vue中的key有什么用
    小编给大家分享一下vue中的key有什么用,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!key到底有什么用途 先来看官方解释 :key属性主要用在vue的虚拟DOM算法(diff算法), 在新旧nodes对比时辨识VNod...
    99+
    2023-06-22
  • vue中key的作用是什么
    这篇文章将为大家详细讲解有关vue中key的作用是什么,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。为什么要使用VueVue是一款友好的、多用途且高性能的JavaScript框架,使用vue...
    99+
    2023-06-14
  • vue中nextTick的作用是什么
    这篇文章给大家介绍vue中nextTick的作用是什么,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。为什么要用nextTick请看如下一段代码new Vue({  ...
    99+
    2022-10-19
  • Vue中Watcher的作用是什么
    Vue中Watcher的作用是什么,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。就是这个函数:// Line-7531  ...
    99+
    2022-10-19
  • Vue中transition的作用是什么
    Vue中transition的作用是什么,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。了解构建过程既然要看源码,就先让Vue在开发环境跑起...
    99+
    2022-10-19
  • vue中loader的作用是什么
    vue中loader可以用来解析和转换.vue文件,提取出每个语言块,有必要的情况下会分别把他们交给对应的loader去处理,它还能够在.vue文件中添加额外的自定义块来实现项目的特殊需求。...
    99+
    2022-10-12
  • vue指令是什么及有什么作用
    这篇文章主要介绍了vue指令是什么及有什么作用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇vue指令是什么及有什么作用文章都会有所收获,下面我们一起来看看吧。 ...
    99+
    2022-10-19
  • Vue3项目中的hooks怎么使用
    本篇内容介绍了“Vue3项目中的hooks怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!hooks 特点vue3 中的 hooks ...
    99+
    2023-07-06
  • Vue项目的src目录有什么作用
    本篇内容介绍了“Vue项目的src目录有什么作用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Vue CL...
    99+
    2022-10-19
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作