计划:利用useEffect钩子函数的生命周期,在index和about页面切换时改变背景颜色。
在index.js页面的Home组件中增加一个useEffect钩子函数
index.js页面的代码更新如下
import Head from 'next/head'
import styles from '../styles/Home.module.css'
import { Footer } from '../components/Footer'
import { Main } from '../components/Main'
import { Header } from '../components/Header'
import { useCallback, useEffect } from 'react'
import Link from 'next/link'
export default function Home() {
const bar =123456;
const handleclick = useCallback((e) =>{
console.log(e.target.href)
e.preventDefault();//阻止链接到下一个页面
alert(bar);
},[]);
useEffect(() =>{
console.log("mount");
document.body.style.backgroundColor = "lightblue";
return (() =>{
console.log("unmount");
document.body.style.backgroundColor = "lightgreen";
})
},[]);
return (
<div className={styles.container}>
<Head>
<title>Index page</title>
<link rel="icon" href="/favicon.ico" />
</Head>
<Header />
<Link href="/about" onClick={handleclick}>
链接到about页面
</Link>
<Main page="index"/>
<Footer />
</div>
)
}
查看index页面测试效果,测试成功,至此计划完成。