首页 > 其他分享 >Next.js & React component render twice bug All In One

Next.js & React component render twice bug All In One

时间:2022-11-16 00:12:13浏览次数:47  
标签:react render current component js React twice root

Next.js & React component render twice bug All In One

error ❌

solution ✅

// next.config.js
module.exports = {
-  reactStrictMode: true,
+  reactStrictMode: false,
}

demos

问题复现条件:

  1. state function component 有状态函数组件
  2. state class component 有状态函数组件
  3. hooks compenent 钩子组件

import React, {
  useEffect,
  useRef,
} from "react";
import { createRoot } from 'react-dom/client';

// export default function Home() {
function Home() {
  const log = console.log;
  log(`v18 createRoot =\n`, createRoot);
  let root = useRef(null);
  useEffect(() => {
    // v18
    console.log(`root =`, root)
    console.log(`root.current =`, root.current)
    if(!root.current) {
      const App = document.getElementById('v18-app');
      root.current = createRoot(App);
      // JSX
      root.current.render(<h1>Develop. Preview. Ship. 

标签:react,render,current,component,js,React,twice,root
From: https://www.cnblogs.com/xgqfrms/p/16894519.html

相关文章

  • SpringBoot 10: SpringBoot使用Thymeleaf模板引擎替代jsp
    Thymeleaf模板引擎简介Thymeleaf:是使用java开发的模板技术,在服务器端运行,把处理后的数据发送给浏览器模板是作视图层工作的,用来显示数据的Thymeleaf是基于Html语言的......
  • js闭包问题、js事件循环机制、async与defer、同步与异步模式
    js闭包问题定义:闭包就是有权访问其他函数作用域内的其他变量的函数。实现机制:在访问变量的函数中return一个匿名函数,这时匿名函数的作用域链将指向该函数的作用域。!!!由于......
  • js继承链讲解
    构造函数可以制作一个老虎对象js没有类的概念,因此js的继承不是通过类的继承实现的,而是通过原型的概念来实现的//这个构造函数用来制造对象functiontiger(){ this.b......
  • Tween.js动画
    一,安装及引用#yarnyarnadd@tweenjs/tween.js#npmnpminstall@tweenjs/tween.js--save#引用importTweenfrom'@tweenjs/tween.js'二,基本使用impor......
  • 浅析 js 实现网页截图的两种方式
    参考:https://juejin.cn/post/6844903465756393486<p>Web端的截图(生成图片)并不算是个高频的需求,资料自然也不算多,查来查去,也不过Canvas和SVG两种实现方案,原......
  • 淘宝数据采集之js采集
    搜索页面采集,数据在控制台哦!!!搜索页面采集,数据在控制台哦!!!搜索页面采集,数据在控制台哦!!!既然能打到控制台,当然也能传到系统!!!既然能打到控制台,当然也能传到系统!!!既然能打......
  • 淘宝首页数据采集之js采集
    搜索页面采集,数据在控制台哦!!!搜索页面采集,数据在控制台哦!!!搜索页面采集,数据在控制台哦!!!既然能打到控制台,当然也能传到系统!!!既然能打到控制台,当然也能传到系统!!!既然能打......
  • 使用vue-json-editor实现json编辑框
    1、进入到自己的项目,使用npm安装vue-json-editornpminstallvue-json-editor--save2、在vue组件中使用vue-json-editor<template><div><p>vue-json-edito......
  • simpread-(130 条消息) js 中常见的导入导出方式_AntyCoder 的博客 - CSDN 博客_js 导
    常见的导出方式创建文件foo.js//设置常量constname='tom';constage=20;consthello=function(age){console.log('张三今年'+age)}方式一exportc......
  • js实现深度优先遍历和广度优先遍历
    什么是深度优先和广度优先其实简单来说深度优先就是自上而下的遍历搜索广度优先则是逐层遍历,如下图所示深度优先广度优先两者的区别对于算法来说无非就是时......