![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
react
程序员超超
这个作者很懒,什么都没留下…
展开
-
react-activation导致组件多渲染一次
这样替换完时候,确实只渲染了一次。报错大概意思就是让你使用react18的方法挂在节点,别使用react17的用法。应该会被打印1次,但是很奇怪,会打印两次。最开始想到的是可能是开启了。放在keepalive里面的是一个组件,组件结构很简单。react-activation版本是2.6.1。,经过检查并没有开启。最终逐一排查,发现是。react版本是18.2.0。其中给出了两种解决方案。原创 2023-10-17 15:35:58 · 303 阅读 · 0 评论 -
在useEffect中使用state,state不是最新值
第二次执行的时候并没有重新覆盖按钮的点击事件,因为useEffect监听是是空数组,所以当第二次执行。的时候,a的值是0,所以以后点击就一直输出0。执行的作用域,也就是形成了闭包。我们来简单分析一下,这是什么问题引起的。也就是每次a的值改变,就重新监听点击事件。这个问题其实是因为闭包引起的。的值是0,在组件挂载的时候注册了。之后,点击事件引用的a还是第一次。那么如果修改呢,可以这样改。但是页面可以正确渲染。注意这个时候执行了两次。原创 2023-10-22 14:30:31 · 284 阅读 · 0 评论 -
React 在非组件环境切换路由
的时候,跳转到登录页面,但是像上面这样使用路由,该怎么在组件外面(例如。做接口拦截,当接口的是响应码是。目前看这种方法好像无法做跳转。的逻辑中)做路由跳转呢。可以使用下面的方式做。原创 2023-10-25 17:32:49 · 527 阅读 · 0 评论 -
react项目自行配置热更新
这里还解释一下为什么不用webpack的hmr,webpack不是自带hmr么,为什么还安装其他的包呢?这个问题大家可以看一下我。我们这里基于上面的代码进行改编,这里react和react-dom需要降级,把18版本降级成17版本。,这个是官方推荐的做法。下面给出一个完整demo。react项目自己配置热更新的话需要安装两个包。这个时候热更新就不起作用了。修改webpack.config.js配置。这里说一下注意点,每个组件只能使用一个。,如果有多个,热更新会失效,修改index.js。原创 2023-11-26 19:17:27 · 751 阅读 · 0 评论 -
react的组件和元素的类型总结
所以到这里,这4个类型都有所关联,这里有一些绕。这里只是想说,如果以后看到这些类型,希望能不会那么困惑。其实这几种方式都有很强的关系,不是超集,就是子集。其实React中描述组件类型有很多方式,刚开始的时候还是很容易迷惑的。并且都是正确的方式,我们平时大概都用。还有一个小注意点,类似于vue的插槽吧,来看一个demo。不知道这段代码大家会不会发现是错误的,这里的。这种方式内嵌到其他组件中,正确的方式应该是。是一个联合类型,其中的一个类型就是。,并不是一个组件,所有不能使用。类型也可以,不过需要注意的是。原创 2023-11-18 23:48:03 · 570 阅读 · 0 评论