projects 70+ clients 26 partners EXPERTISE 1,000+ years of experience 100+ won programming competition 1,400+ years of programming 21,000+ books read 38,000 weekly reports TECHNOLOGY 60+ SaaS used 150+ technologies used 320,000+ articles read INCUBATE STARTUPS COMPANY - Born Cloud-Native 9 years since founded in 2012 200+ talented employees 5 offices in 5 cities 80% engineers 20+ certified people 1600++ trainings taken
capable of crafting customized solutions Analytics Platform An easy & intelligent way to turn your data into insights Training Center We are what we invest
a render update. So when would you use state? When a component needs to keep track of information between renderings, the component itself can create, update, and use state.
React 16.8. They let you use state and other React features without writing a class. function Example(props) { // You can use Hooks here! return <div /> }
new state variable, which we'll call "count" const [count, setCount] = useState(0); return ( <button onClick={() => setCount(count + 1)}> Clicked {count} times </button> ) } • useState call it inside a function component to add some local state to it
componentDidMount and componentDidUpdate: useEffect(() => { // Update the document title using the browser API document.title = `You clicked ${count} times` }, [count]) return ( <button onClick={() => setCount(count + 1)}> Clicked {count} times </button> ) } • useEffect wrap a function that contains imperative, possibly effectful code
useCallback(() => { alert(`You clicked ${count} times`) }, [count]) return ( <> <button onClick={() => setCount(count + 1)}> Clicked {count} times </button> <button onClick={alertCount} /> </> ) } • useCallback returns a memoized callback that only changes if one of the dependencies has changed
useMemo(() => { // computeExpensiveValue is a function with heavy calculation return computeExpensiveValue(count) }, [count]) return ( <> <div>Computation result: {memoizedValue}</div> <button onClick={() => setCount(count + 1)}> Clicked {count} times </button> </> ) } • useMemo returns a memoized value, it only recomputes when one of the dependencies has changed
Engineer • Solution Engineer • CATAPA Business Development • CATAPA Content Strategist • GLAIR Account Executive • Product Marketing • Windows Server Administrator • Graphic Designer (UI/UX) • and many more... JAKARTA • BANDUNG • YOGYAKARTA • SURABAYA • BALI