草庐IT

解决useState 异步回调useGetState自定义hooks获取不到最新值

setState的两种传参方式1、直接传入新值setState(options);const[state,setState]=useState(0);setState(state+1);2、传入回调函数setState(callBack);const[state,setState]=useState(0);setState((prevState)=>prevState+1);//prevState是改变之前的state值,return返回的值会作为新状态覆盖state值useState异步回调获取不到最新值及解决方案通常情况下setState直接使用上述第一种方式传参即可,但在一些特殊情况下第

【前端必会】tapable、hook,webpack的灵魂

背景什么是tapable、hook,平时做vue开发时的webpack配置一直都没弄懂,你也有这种情况吗?还是看源码,闲来无聊又看一下webpack的源码,看看能否找到一些宝藏tapable和webpack没有特定关系,可以先看下这篇文章,了解下这个小型库https://webpack.docschina.org/api/plugins/#tapablehttps://blog.csdn.net/mafan121/article/details/1131200814.下面记录下寻宝过程开始执行一次webpack经历了什么,先看一下代码我们分析一下4点引用了webpack我们使用的配置文件调用w

【前端必会】tapable、hook,webpack的灵魂

背景什么是tapable、hook,平时做vue开发时的webpack配置一直都没弄懂,你也有这种情况吗?还是看源码,闲来无聊又看一下webpack的源码,看看能否找到一些宝藏tapable和webpack没有特定关系,可以先看下这篇文章,了解下这个小型库https://webpack.docschina.org/api/plugins/#tapablehttps://blog.csdn.net/mafan121/article/details/1131200814.下面记录下寻宝过程开始执行一次webpack经历了什么,先看一下代码我们分析一下4点引用了webpack我们使用的配置文件调用w

angr_ctf——从0学习angr(三):Hook与路径爆炸

路径爆炸之前说过,angr在处理分支时,采取统统收集的策略,因此每当遇见一个分支,angr的路径数量就会乘2,这是一种指数增长,也就是所说的路径爆炸。以下是路径爆炸的一个例子:charbuffer[17];for(inti=0;i16;i++){if(buffer[i]!='B'){return0;}}return1;buffer的字符长度为16,当它等于16个连续的'B'时,程序返回1,然而angr在探索这样的路径时,会遇上16次if语句,也就相应地产生2的16次方个路径,但正确的答案只有一条路径能够达到(if全为false的那一条),这一条路径就被淹没在大量错误路径中,产生了路径爆炸。因此

angr_ctf——从0学习angr(三):Hook与路径爆炸

路径爆炸之前说过,angr在处理分支时,采取统统收集的策略,因此每当遇见一个分支,angr的路径数量就会乘2,这是一种指数增长,也就是所说的路径爆炸。以下是路径爆炸的一个例子:charbuffer[17];for(inti=0;i16;i++){if(buffer[i]!='B'){return0;}}return1;buffer的字符长度为16,当它等于16个连续的'B'时,程序返回1,然而angr在探索这样的路径时,会遇上16次if语句,也就相应地产生2的16次方个路径,但正确的答案只有一条路径能够达到(if全为false的那一条),这一条路径就被淹没在大量错误路径中,产生了路径爆炸。因此

一个简单的websocket hook

一个简单的vue3的websockethook.有以下基础功能:创建链接失败重连发送心跳包import{ref}from"vue";exportinterfaceWS_CONFIG{url:string;//ws链接地址sendData?:Record;//请求数据reconnectSec?:number;//请求异常重连间隔needHeart?:boolean;//是否需要心跳heartSec?:number;//心跳间隔heartData?:unknown;//心跳时发送的数据}exportdefaultfunction({url,sendData={},heartSec=1000*30,

一个简单的websocket hook

一个简单的vue3的websockethook.有以下基础功能:创建链接失败重连发送心跳包import{ref}from"vue";exportinterfaceWS_CONFIG{url:string;//ws链接地址sendData?:Record;//请求数据reconnectSec?:number;//请求异常重连间隔needHeart?:boolean;//是否需要心跳heartSec?:number;//心跳间隔heartData?:unknown;//心跳时发送的数据}exportdefaultfunction({url,sendData={},heartSec=1000*30,

记录--这样封装列表 hooks,一天可以开发 20 个页面

这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助这样封装列表hooks,一天可以开发20个页面前言在做移动端的需求时,我们经常会开发一些列表页,这些列表页大多数有着相似的功能:分页获取列表、上拉加载、下拉刷新···在Vue出来compositionAPI之前,我们想要复用这样的逻辑还是比较麻烦的,好在现在Vue2.7+都支持compositionAPI语法了,这篇文章我将手把手带你用compositionAPI封装一个名为useList的hooks来实现列表页的逻辑复用。基础版需求分析一个列表,最基本的需求应该包括:发起请求,获取到列表的数组,然后将该数组渲染成相应的DOM节点。要

记录--这样封装列表 hooks,一天可以开发 20 个页面

这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助这样封装列表hooks,一天可以开发20个页面前言在做移动端的需求时,我们经常会开发一些列表页,这些列表页大多数有着相似的功能:分页获取列表、上拉加载、下拉刷新···在Vue出来compositionAPI之前,我们想要复用这样的逻辑还是比较麻烦的,好在现在Vue2.7+都支持compositionAPI语法了,这篇文章我将手把手带你用compositionAPI封装一个名为useList的hooks来实现列表页的逻辑复用。基础版需求分析一个列表,最基本的需求应该包括:发起请求,获取到列表的数组,然后将该数组渲染成相应的DOM节点。要

前端 Git-Hooks 工程化实践

前言前段时间,部门的前端项目迁移到monorepo架构,笔者在其中负责跟git工作流相关的事情,其中就包括githooks相关的工程化的实践。用到了一些常用的相关工具如husky、lint-staged、commitizen、commit-lint等,以此文记录一下整个的实践过程和踩过的坑。注意:下文中的例子以及命令都是基于MacOS,如果你是windows用户,也不用担心,文中也会阐述大致原理和运行逻辑,对应的windows命令可以推理得知。GitHooksGitHooks是什么大多数同学应该都对githooks相当了解,但是笔者还是想在这里详细解释一下。首先是hook,这其实是计算机领域中