Sobes.tech
Middle

Տվեք օրինակներ, թե ինչ կարող եք անել useEffect hook-ով, բացի սերվերին հարցումներ ուղարկելուց։

sobes.tech AI

Պատասխան AI-ից

  • Էջի վերնագրի վիճակի կառավարում (document.title).

  • Բրաուզերի իրադարձությունների գրանցում և հեռացում (օրինակ, պատուհանի չափի փոփոխություն, տարրից դուրս սեղմումներ):

    useEffect(() => {
      const handleResize = () => {
        console.log('Պատուհանի չափը փոխվել է');
      };
      window.addEventListener('resize', handleResize);
    
      return () => {
        window.removeEventListener('resize', handleResize);
      };
    }, []); // Զբաղվածության բաց ցանկություն: Էֆեկտը մեկ անգամ կատարվում է մոնտաժման ժամանակ և մաքրվում է մոնտաժից դուրս գալու ժամանակ:
    
  • Աշխատանք տեղական պահոցով (տվյալների ընթերցում/գրառում):

    useEffect(() => {
      const savedValue = localStorage.getItem('myInputValue');
      if (savedValue) {
        setInputValue(savedValue); // Կանխատեսվում է, որ կա inputValue վիճակ և setInputValue ֆունկցիա
      }
    }, []); // Վիճակի բեռնում մոնտաժման ժամանակ:
    
    useEffect(() => {
      localStorage.setItem('myInputValue', inputValue); // Պահպանել inputValue փոփոխության ժամանակ:
    }, [inputValue]); // Զբաղվածություն inputValue-ից:
    
  • Երրորդ կողմի գրադարանների կամ կոմպոնենտների սկզբնականացման գործընթաց:

    useEffect(() => {
      // Կառավարում կամ initialization code
    }, []);
    
  • Ժամանակաչափերի կարգավորում և մաքառում (setTimeout, setInterval):

    useEffect(() => {
      const timerId = setInterval(() => {
        console.log('Ժամանակաչափ աշխատում է');
      }, 1000);
    
      return () => {
        clearInterval(timerId); // Intervals մաքրել մոնտաժից դուրս գալու ժամանակ:
      };
    }, []);
    
  • Փոփոխությունների հետևում և արձագանքում դրանց:

    useEffect(() => {
      // Կատարել գործողություններ փոփոխությունների դեպքում
    }, [props, state]);
    
  • Կոմպոնենտի մոնտաժում ֆոկուսավորել տարրին:

    useEffect(() => {
      inputRef.current.focus(); // Կանխատեսվում է, որ կա ref inputRef
    }, []);