在 Day 19 | React入門:React Router 路由控制(下)
 這篇文章中有介紹到利用 <Link> 和 <NavLink> 來切換不同的頁面,這種方式就像超連結,適合放在導覽列,讓使用者自行操作。但有些情況下,單純依靠超連結可能不太合適,因此 useNevigate 就能派上用場了
useNevigateuseNavigate 是 React Router v6 提供的一個 Hook ,它能讓我們在程式中主動進行導頁,和 <Link> 不同的是:
<Link>:使用者必須點擊之後才能跳轉畫面useNavigate:在處理事件或是函式執行後,程式可以主動帶使用者去到指定的頁面useNevigate例如:
useNevigate 的用法import { useNavigate } from "react-router-dom";
function Home() {
  const navigate = useNavigate(); 
  return (
    <div>
      <h2>Home Page</h2>
      <button onClick={() => navigate("/(…)")}>
      </button>
    </div>
  );
}
export default Home;
const navigate = useNavigate():建立 useNavigate 函式<button onClick={() => navigate("/(…)")}> </button>:按下按鈕時,呼叫 navigate("/(…)"),就能跳轉到指定頁面(/(…))
除了基本的導頁, useNavigate 還有一些進階的參數和功能
切換頁面navigate(-1);:返回上一頁navigate(1);:前往下一頁
適合用在返回按鈕或多步驟流程的頁面中
const navigate = useNavigate();
const handleSubmit = (e) => {
  e.preventDefault();
  const blog = { title, body, author };
  fetch('http://localhost:8000/blogs/', {
    method: 'POST',
    headers: { "Content-Type": "application/json" },
    body: JSON.stringify(blog)
  }).then(() => {
    console.log('new blog added');
    navigate("/");  
  })
}
useNavigate() 先建立一個 navigate 函式。navigate("/"),導頁回首頁。瀏覽器執行結果