کاربر در Next.js – جامعه dev

در useRouter
قلاب در Next.js است که ناوبری برنامه ای و دسترسی به داده های مسیر فعلی را ارائه می دهد. تماس با قلاب یک شی را برمی گرداند. از شیء می توانید به آن دسترسی پیدا کنید
- نام مسیر فعلی (نام مسیر)
- پارامتر پرس و جو (پرس و جو)
- با فشار ، جایگزینی و سایر روشها قادر به حرکت بین صفحات/مؤلفه ها است
- می تواند تاریخچه مرورگر را با استفاده از پشت ، بارگیری مجدد و سایر روش ها کنترل کند.
👉 نحوه استفاده useRouter
قلاب
ابتدا از بسته های صحیح وارد کنید.
import { useRouter } from 'next/navigation'
NB: بعدی/روتر در Next.js 15 کاهش می یابد.
پس از useRouter
قلاب سمت مشتری است ، شما باید از آن استفاده کنید "use client"
در بالای پرونده.
useRouter
هوک یک شیء را برمی گرداند
push
back
forward
refresh
replace
-
prefetch
وت -
hmrRefresh
روشها بیایید یکی یکی را توصیف کنیم.
👉 push
از آن برای پیمایش مسیرهای جدید به صورت برنامه ای استفاده می شود. این یک تاریخچه جدید مرورگر را به پشته اضافه می کند. نحو آن است router.push(href, options?)
بشر ارائه گزینه اجباری نیست.
NB: برای دانستن بیشتر در مورد optoins
مقاله را بخوانید غرفه های لینک مشابه گزینه ها هستند
درباره گزینه یا بیشتر بدانید Link
غرفه
"use client";
import { useRouter } from "next/navigation";
const AboutPage = () => {
const router = useRouter();
const aboutRouteHandler = () => {
router.push("https://dev.to/about");
}
const contactRouteHandler = () => {
router.push('/contactus', {scroll: false});
}
return (
{/* Without option */}
{/* With option */}
);
};
export default AboutPage;
کاربران می توانند در صفحه جدید حرکت کنند و گزینه ای را برای بازگشت به صفحه قبلی نگه دارند.
👉 replace
این ورودی تاریخ فعلی را به روز می کند و ورودی قبلی را حذف می کند. نحو: router.replace(href, options?)
"use client";
import { useRouter } from "next/navigation";
const AboutPage = () => {
const router = useRouter();
const aboutRouteHandler = () => {
router.replace("https://dev.to/about");
}
const contactRouteHandler = () => {
router.replace('/contactus', {scroll: false});
}
return (
{/* Without option */}
{/* With option */}
);
};
export default AboutPage;
برای استفاده replace
روش ، کاربران قادر به بازگشت به صفحه قبلی نیستند.
-جایی که برای استفاده:-
پس از ورود به سیستم ، کاربران ارسال فرم به صفحه دیگری هدایت می شوند. و بازگشت به ورود به سیستم ، صفحه فرم معنی ندارد.
👉 refresh
refresh
صفحه فعلی بدون تأثیرگذاری بر تاریخ مرور. از آن برای به روزرسانی و بازتاب آخرین حالت استفاده می شود. این داده ها و مؤلفه سرور را دوباره به دست آورد. نحو: router.refresh()
"use client";
import { useRouter } from "next/navigation";
const AboutPage = () => {
const router = useRouter();
const aboutRouteHandler = () => {
router.refresh();
}
return (
{/* Without option */}
);
};
export default AboutPage;
👉 prefetch
prefetch
JS ، داده ها و بخش های ذخیره شده برای مسیرهای خاص. به طوری که ، برای کلیک بعدی ، صفحه بلافاصله بارگیری می شود. نحو: router.prefetch(href)
'use client';
import { useEffect } from 'react';
import { useRouter } from 'next/navigation';
export default function AboutPage() {
const router = useRouter();
useEffect(() => {
// যখন AboutPage কম্পোনেন্ট মাউন্ট হবে তখনই প্রিফেচ
router.prefetch('/contactus');
router.prefetch("https://dev.to/help");
}, [router]);
const handleGo = (path) => {
router.push(path);
};
return (
);
}
این صفحات هنگام استفاده از قبل بارگذاری می شوند useEffect()
بشر
_یا می توانیم ترکیب کنیم push
وت prefetch
در کل
'use client';
import { useRouter } from 'next/navigation';
export default function AboutPage() {
const router = useRouter();
const handleMouseEnter = () => {
router.prefetch('/contactus'); // Contactus
};
const handleClick = () => {
router.push('/contactus'); /
};
return (
);
}
هنگامی که ماوس وارد دکمه می شود ، مؤلفه در پس زمینه بارگیری می شود. برای push
کاربر روش بلافاصله به صفحه هدایت شد.
👉 back
back
روش به کاربران اجازه می دهد تا یک قدم در تاریخ به عقب برگردند.
"use client";
import { useRouter } from "next/navigation";
const AboutPage = () => {
const router = useRouter();
const returnPageHandler = () => {
router.back();
}
return (
);
};
export default AboutPage;
👉 forward
forward
به همان روش کار می کند back
روش اما یک قدم به جلو از تاریخ می رود.
"use client";
import { useRouter } from "next/navigation";
const AboutPage = () => {
const router = useRouter();
const nextPageHandler = () => {
router.forward();
}
return (
);
};
export default AboutPage;
👉 hmrRefresh()
این فقط در حالت توسعه کار می کند. بدون بارگذاری مجدد صفحه به طور کامل ، داده های صفحه را تازه می کند.