需求

一个使用react+react-router-dom的网页,希望不同的页面能有不同的title

方法一 : useEffect + document.title

  • 主要思路: 监听url的变化,然后设置document.title,不同的写法差异主要在如何监听

写法一:useLocation()

写法二:useMatches()

  const matches = useMatches()
  const { handle, data } = matches[matches.length - 1]
  const title = handle && handle.title(data)
  
  useEffect(() => {
    if (title) {
      document.title = title
    }
  }, [title])

方法二

补充

Open Graph protocol

The Open Graph protocol

Twitter Cards

Getting started with Cards | Docs | Twitter Developer Platform

生成

frostming/fxzhihu: 为知乎生成可分享的卡片及 Instant View