diff --git a/results/derivving-state.png b/results/derivving-state.png new file mode 100644 index 0000000..9af5c6b Binary files /dev/null and b/results/derivving-state.png differ diff --git a/results/only-effects.png b/results/only-effects.png new file mode 100644 index 0000000..6f53da9 Binary files /dev/null and b/results/only-effects.png differ diff --git a/results/useMemo.png b/results/useMemo.png new file mode 100644 index 0000000..d4f53d6 Binary files /dev/null and b/results/useMemo.png differ diff --git a/src/App.tsx b/src/App.tsx index 781c617..1b911c6 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -35,6 +35,7 @@ const Category = () => (

Category

under Category

+

kykelyn

); diff --git a/src/Home.tsx b/src/Home.tsx index 475ec0a..31ee8a4 100644 --- a/src/Home.tsx +++ b/src/Home.tsx @@ -1,16 +1,100 @@ -import React from 'react'; +import React,{useEffect, useState, useMemo, useCallback} from 'react'; import logo from './logo.svg'; import Sebas from 'component-sebas' import {Helmet} from "react-helmet"; +function simulateSync(time:number){ + const s = new Date().getSeconds(); + +// setTimeout(function() { +//   // prints out "2", meaning that the callback is not called immediately after 500 milliseconds. +//   console.log("Ran after " + (new Date().getSeconds() - s) + " seconds"); +// }, 500); + + while(true) { +   if(new Date().getSeconds() - s >= time) { +     console.log(`Good, looped for ${time} seconds`); +     break; +   } + } + +} + +function simulateP(time:number){ + return new Promise((resolve, reject) => { + setTimeout(()=> { + resolve(1)}, + time*1000) + }) +} + const Home =() =>{ + + const [number , setNumber]= useState(1) + const [number2 , setNumber2]= useState(0) + // const [number3 , setNumber3]= useState(0) + const [toggle , setToggle]= useState(false) + + const myFn = useCallback((n) => { + console.info('from usecallabck im -->', n) + }, []) + // const myFn = useMemo(() => ()=>{}, []) + // const myFn = () => {} + + + console.count('renderinghome') + + useEffect(()=>{ + console.count('first effect :') + /* sync */ + // simulateSync(3) + + /* promise */ + simulateP(5).then(()=>{ + console.info('promise resolve') + setNumber2(number + 1) + }) + + /* async await */ + // async function papa(){ + // await simulateP(5) + // console.info('promise resolve') + // setNumber2(number) + // } + // papa() + },[number]) + + useEffect(()=>{ + console.count('second effect :') + },) + + + // useEffect(()=>{ + // if(!number2) return + // console.count('third effect:') + // setNumber3(number2 + 1) + // }, [number2]) + + const number3 = useMemo(() =>number2 ? number2 +1 : 0 , [number2] ) + + useEffect(()=>{ + console.count('myFn') + },[myFn]) + + + myFn(number3) + return (
Home title +

first Number : {number}

+

Second NUmber : {number2}

+

third Number : {number3}

+
logo

@@ -25,6 +109,7 @@ const Home =() =>{ > Learn React +

) diff --git a/src/index.tsx b/src/index.tsx index 9f8b15b..e37495c 100644 --- a/src/index.tsx +++ b/src/index.tsx @@ -5,9 +5,10 @@ import App from './App'; import reportWebVitals from './reportWebVitals'; ReactDOM.hydrate( - - - , + // + // + // , + , document.getElementById('root') ); diff --git a/src/server/index.tsx b/src/server/index.tsx index fc2d6c9..21ffa61 100644 --- a/src/server/index.tsx +++ b/src/server/index.tsx @@ -6,6 +6,8 @@ Helmet.canUseDOM = false const renderK = (extractor: any, location?: string) =>{ + + console.log('kykelyn 45456') const reactDom = renderToString() const helmet = Helmet.renderStatic();