[{"data":1,"prerenderedAt":190},["ShallowReactive",2],{"quiz-meta-react":3},{"framework":4,"topicStats":7,"subtopicStats":57},{"slug":5,"name":6},"react","React",[8,15,22,28,34,41,46,52],{"slug":9,"name":10,"total":11,"easy":12,"medium":13,"hard":14},"hooks","Hooks",145,28,77,40,{"slug":16,"name":17,"total":18,"easy":19,"medium":20,"hard":21},"components","Components",82,29,48,5,{"slug":23,"name":24,"total":25,"easy":26,"medium":12,"hard":27},"state-and-data-flow","State and Data Flow",59,25,6,{"slug":29,"name":30,"total":31,"easy":32,"medium":33,"hard":32},"rendering-and-performance","Rendering and Performance",74,19,36,{"slug":35,"name":36,"total":37,"easy":38,"medium":39,"hard":40},"routing","Routing",80,27,41,12,{"slug":42,"name":43,"total":44,"easy":45,"medium":14,"hard":40},"state-management","State Management",75,23,{"slug":47,"name":48,"total":49,"easy":26,"medium":50,"hard":51},"patterns","Patterns",98,51,22,{"slug":53,"name":54,"total":55,"easy":56,"medium":38,"hard":40},"testing","Testing",57,18,[58,65,70,76,82,86,89,93,96,100,104,107,111,114,117,120,123,126,129,132,135,138,142,145,148,151,154,157,160,163,166,169,172,175,178,181,184,187],{"path":59,"subtopic":60,"topicSlug":9,"total":61,"easy":62,"medium":63,"hard":64},"\u002Freact\u002Fhooks\u002Fcustom-hooks","Custom Hooks",14,4,9,1,{"path":66,"subtopic":67,"topicSlug":9,"total":68,"easy":69,"medium":63,"hard":62},"\u002Freact\u002Fhooks\u002Fusecallback-usememo","useCallback & useMemo",15,2,{"path":71,"subtopic":72,"topicSlug":9,"total":73,"easy":74,"medium":75,"hard":21},"\u002Freact\u002Fhooks\u002Fusecontext","useContext",16,3,8,{"path":77,"subtopic":78,"topicSlug":9,"total":79,"easy":21,"medium":80,"hard":81},"\u002Freact\u002Fhooks\u002Fuseeffect","useEffect",35,17,13,{"path":83,"subtopic":84,"topicSlug":9,"total":73,"easy":62,"medium":85,"hard":69},"\u002Freact\u002Fhooks\u002Fusereducer","useReducer",10,{"path":87,"subtopic":88,"topicSlug":9,"total":68,"easy":62,"medium":27,"hard":21},"\u002Freact\u002Fhooks\u002Fuseref","useRef",{"path":90,"subtopic":91,"topicSlug":9,"total":92,"easy":27,"medium":56,"hard":85},"\u002Freact\u002Fhooks\u002Fusestate","useState",34,{"path":94,"subtopic":95,"topicSlug":16,"total":68,"easy":27,"medium":75,"hard":64},"\u002Freact\u002Fcomponents\u002Fconditional-rendering","Conditional Rendering",{"path":97,"subtopic":98,"topicSlug":16,"total":80,"easy":62,"medium":99,"hard":69},"\u002Freact\u002Fcomponents\u002Fevent-handling","Event Handling",11,{"path":101,"subtopic":102,"topicSlug":16,"total":73,"easy":75,"medium":75,"hard":103},"\u002Freact\u002Fcomponents\u002Fjsx-rendering","JSX and Rendering",0,{"path":105,"subtopic":106,"topicSlug":16,"total":56,"easy":62,"medium":81,"hard":64},"\u002Freact\u002Fcomponents\u002Flists-keys","Lists and Keys",{"path":108,"subtopic":109,"topicSlug":16,"total":73,"easy":110,"medium":75,"hard":64},"\u002Freact\u002Fcomponents\u002Fprops-component-types","Props and Component Types",7,{"path":112,"subtopic":113,"topicSlug":23,"total":68,"easy":62,"medium":63,"hard":69},"\u002Freact\u002Fstate-and-data-flow\u002Fcontext-api","Context API",{"path":115,"subtopic":116,"topicSlug":23,"total":61,"easy":63,"medium":62,"hard":64},"\u002Freact\u002Fstate-and-data-flow\u002Fcontrolled-vs-uncontrolled","Controlled vs Uncontrolled Components",{"path":118,"subtopic":119,"topicSlug":23,"total":73,"easy":110,"medium":75,"hard":64},"\u002Freact\u002Fstate-and-data-flow\u002Flifting-state","Lifting State Up",{"path":121,"subtopic":122,"topicSlug":23,"total":61,"easy":21,"medium":110,"hard":69},"\u002Freact\u002Fstate-and-data-flow\u002Fprop-drilling-composition","Prop Drilling and Composition",{"path":124,"subtopic":125,"topicSlug":29,"total":68,"easy":21,"medium":75,"hard":69},"\u002Freact\u002Frendering-and-performance\u002Fcode-splitting-lazy","Code Splitting and Lazy Loading",{"path":127,"subtopic":128,"topicSlug":29,"total":61,"easy":62,"medium":110,"hard":74},"\u002Freact\u002Frendering-and-performance\u002Freact-memo","React.memo",{"path":130,"subtopic":131,"topicSlug":29,"total":68,"easy":74,"medium":27,"hard":27},"\u002Freact\u002Frendering-and-performance\u002Fsuspense-concurrent","Suspense and Concurrent Rendering",{"path":133,"subtopic":134,"topicSlug":29,"total":68,"easy":74,"medium":110,"hard":21},"\u002Freact\u002Frendering-and-performance\u002Fusememo-usecallback-patterns","useMemo and useCallback Patterns",{"path":136,"subtopic":137,"topicSlug":29,"total":68,"easy":62,"medium":75,"hard":74},"\u002Freact\u002Frendering-and-performance\u002Fvirtual-dom-reconciliation","Virtual DOM and Reconciliation",{"path":139,"subtopic":140,"topicSlug":35,"total":141,"easy":110,"medium":63,"hard":62},"\u002Freact\u002Frouting\u002Fdynamic-nested-routes","Dynamic and Nested Routes",20,{"path":143,"subtopic":144,"topicSlug":35,"total":141,"easy":21,"medium":99,"hard":62},"\u002Freact\u002Frouting\u002Fnavigation-hooks","Navigation Hooks",{"path":146,"subtopic":147,"topicSlug":35,"total":141,"easy":21,"medium":99,"hard":62},"\u002Freact\u002Frouting\u002Fprotected-routes","Protected Routes",{"path":149,"subtopic":150,"topicSlug":35,"total":141,"easy":85,"medium":85,"hard":103},"\u002Freact\u002Frouting\u002Frouting-basics","Routing Basics",{"path":152,"subtopic":153,"topicSlug":42,"total":141,"easy":21,"medium":99,"hard":62},"\u002Freact\u002Fstate-management\u002Fasync-state-react-query","Async State & React Query",{"path":155,"subtopic":156,"topicSlug":42,"total":56,"easy":27,"medium":63,"hard":74},"\u002Freact\u002Fstate-management\u002Fcontext-vs-redux","Context vs Redux",{"path":158,"subtopic":159,"topicSlug":42,"total":32,"easy":110,"medium":63,"hard":74},"\u002Freact\u002Fstate-management\u002Fredux-toolkit","Redux Toolkit",{"path":161,"subtopic":162,"topicSlug":42,"total":56,"easy":21,"medium":99,"hard":69},"\u002Freact\u002Fstate-management\u002Fzustand","Zustand",{"path":164,"subtopic":165,"topicSlug":47,"total":32,"easy":27,"medium":63,"hard":62},"\u002Freact\u002Fpatterns\u002Fcompound-components","Compound Components",{"path":167,"subtopic":168,"topicSlug":47,"total":141,"easy":21,"medium":40,"hard":74},"\u002Freact\u002Fpatterns\u002Ferror-boundaries","Error Boundaries",{"path":170,"subtopic":171,"topicSlug":47,"total":141,"easy":62,"medium":85,"hard":27},"\u002Freact\u002Fpatterns\u002Fforward-ref-imperative","forwardRef & useImperativeHandle",{"path":173,"subtopic":174,"topicSlug":47,"total":141,"easy":62,"medium":40,"hard":62},"\u002Freact\u002Fpatterns\u002Fportals-refs","Portals & Refs",{"path":176,"subtopic":177,"topicSlug":47,"total":32,"easy":27,"medium":75,"hard":21},"\u002Freact\u002Fpatterns\u002Frender-props-hoc","Render Props & HOCs",{"path":179,"subtopic":180,"topicSlug":53,"total":68,"easy":75,"medium":21,"hard":69},"\u002Freact\u002Ftesting\u002Fcomponent-interaction-testing","Component Interaction Testing",{"path":182,"subtopic":183,"topicSlug":53,"total":81,"easy":74,"medium":21,"hard":21},"\u002Freact\u002Ftesting\u002Fmocking-async","Mocking Async",{"path":185,"subtopic":186,"topicSlug":53,"total":73,"easy":27,"medium":63,"hard":64},"\u002Freact\u002Ftesting\u002Frtl-basics","RTL Basics",{"path":188,"subtopic":189,"topicSlug":53,"total":81,"easy":64,"medium":75,"hard":62},"\u002Freact\u002Ftesting\u002Ftesting-custom-hooks","Testing Custom Hooks",1782244082983]