Skip to content

useDocumentTitle ​

一个用于动态设置和管理文档标题的 React Hook。

功能特性 ​

  • ✅ 动态标题: 动态设置页面标题
  • ✅ 自动恢复: 组件卸载时可选择恢复原标题
  • ✅ 类型安全: 完整的 TypeScript 类型支持

基本用法 ​

typescript
import useDocumentTitle from "./useDocumentTitle";

function PageComponent() {
  useDocumentTitle("新页面标题");

  return <div>页面内容</div>;
}

兼容性 ​

  • ✅ React 16.8+
  • ✅ TypeScript 4.0+
  • ✅ 现代浏览器

实现源码 ​

查看 useDocumentTitle 的实现
tsx
import { useEffect, useRef } from "react";

//使用useRef改变页面标题
const useDocumentTitle = (title: string, keepOnUnmount: boolean = true) => {
  //页面内加载时: 旧title
  //加载后: 新title
  const oldTitle = useRef(document.title).current;

  useEffect(() => {
    document.title = title;
  }, [title]);

  useEffect(() => {
    return () => {
      if (!keepOnUnmount) {
        //如果不指定依赖, 读到的就是旧的title
        document.title = oldTitle;
      }
    };
  }, [oldTitle, keepOnUnmount]);
};

export default useDocumentTitle;

在实践中理解 React,在分享中共同成长。