Hooks Lanjutan pada React useContext dan useRef

Hooks Lanjutan React

React Hooks merupakan fitur baru yang ditambahkan pada versi 16.8 dari React, yang memungkinkan Anda menggunakan state dan lifecycle methods pada function components. Hooks lnajutan pada react yang paling sering digunakan adalah useContext dan useRef.

Hooks Lanjutan useContext

useContext adalah Hook yang memungkinkan Anda untuk mengakses context dari sebuah component tanpa harus melalui props drilling. Context dibuat dengan menggunakan React.createContext dan dapat diakses dengan menggunakan useContext pada function component.

Contoh penggunaan useContext adalah sebagai berikut:

import React, { useContext } from 'react';

const MyContext = React.createContext();

function Child() {
  const value = useContext(MyContext);
  return <div>{value}</div>;
}

function Parent() {
  return (
    <MyContext.Provider value="Hello World">
      <Child />
    </MyContext.Provider>
  );
}

Pada contoh di atas, kita membuat context dengan nama MyContext dan menggunakan MyContext.Provider untuk memberikan nilai kepada context. Kemudian, pada function component Child, kita dapat mengakses nilai dari context tersebut dengan menggunakan useContext.

Hooks Lanjutan useRef

Selain useContext, kita juga dapat menggunakan Hook useRef untuk menyimpan referensi DOM pada function component. useRef dapat digunakan untuk mengakses properti DOM, seperti value pada input field atau current pada element HTML.

Contoh penggunaan useRef adalah sebagai berikut:

import React, { useRef } from 'react';

function Example() {
  const inputRef = useRef(null);

  function focusInput() {
    inputRef.current.focus();
  }

  return (
    <div>
      <input ref={inputRef} />
      <button onClick={focusInput}>Focus Input</button>
    </div>
  );
}

Pada contoh di atas, kita menggunakan useRef untuk menyimpan referensi DOM dari input field. Kemudian, kita dapat mengakses properti focus pada input field dengan menggunakan inputRef.current.focus().

Selain itu, useRef juga dapat digunakan untuk menyimpan nilai yang tidak akan diubah-ubah selama proses render component. Misalnya, jika Anda ingin menyimpan nilai dari suatu form yang tidak ingin diubah setelah form tersebut di-submit, Anda dapat menggunakan useRef untuk menyimpan nilai tersebut.

Contoh penggunaan useRef untuk menyimpan nilai yang tidak akan diubah-ubah adalah sebagai berikut:

import React, { useRef } from 'react';

function Example() {
  const formRef = useRef({});

  function handleSubmit(event) {
    event.preventDefault();
    const formData = formRef.current;
    // do something with form data
  }

  return (
    <form onSubmit={handleSubmit} ref={formRef}>
      <input name="name" />
      <input name="email" />
      <button type="submit">Submit</button>
    </form>
  );
}

Pada contoh di atas, kita menggunakan useRef untuk menyimpan referensi dari form element dan menyimpan nilai dari form tersebut pada saat submit. Dengan demikian, kita dapat mengakses nilai dari form tersebut setelah form di-submit tanpa perlu menyimpan nilai tersebut pada state.

Kesimpulannya, Hooks useContext, useRef merupakan fitur yang sangat berguna dalam pengembangan aplikasi React. Masing-masing Hook memiliki fungsi yang berbeda, sehingga dapat disesuaikan dengan kebutuhan yang Anda miliki pada aplikasi Anda. Jadi, jika Anda ingin mengakses context, menyimpan referensi DOM, atau menambahkan state dan efek pada function component, Anda dapat menggunakan Hooks yang telah disebutkan di atas.