You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何点击NavBar的Contact链接跳转至首页Contact组件(Vite+React)

解决方案

要实现点击导航栏的「Contact」链接后,留在首页并滚动到Contact组件位置,同时保留首页完整内容,只需调整锚点链接和组件标识即可,无需修改核心路由结构:

步骤1:给首页的Contact组件添加锚点ID

修改Home.jsx,为Contact组件添加锚点容器(确保能被锚点定位到):

// Home.jsx
import React from 'react';
import Hero from '../components/Hero';
import Mission from '../components/Mission';
import Contact from '../components/Contact';
import TestComp from '../components/TestComp';

const Home = () => {
  return (
    <> 
      <Hero />
      <Mission />
      <TestComp />
      {/* 给Contact组件添加锚点容器 */}
      <div id="contact-section">
        <Contact />
      </div>
    </>
  );
};

export default Home;

步骤2:修改导航栏的Contact链接指向锚点

修改NavBar.jsx里的Contact链接,将目标路由从/SettingsPage改为首页的锚点路径:

// NavBar.jsx
import React from 'react';
import { Link } from 'react-router-dom';

const NavBar = () => {
  return (
    <nav className="bg-gray-800 p-4">
      <div className="container mx-auto flex items-center justify-between px-10">
        <div className="text-white font-bold text-lg"><Link to="/CommingSoon">Akadimia</Link></div>
        <ul className="flex space-x-5">
          <li className="text-white"><Link to="/">Home</Link></li>
          {/* 修改为锚点链接,指向首页的Contact区域 */}
          <li className="text-white"><Link to="/#contact-section">Contact</Link></li>
          <li className="text-white"><Link to="/Profile">Profile</Link></li>
        </ul>
      </div>
    </nav>
  );
};

export default NavBar;

可选:清理多余路由(如果不需要SettingsPage)

如果SettingsPage组件只是误用来承载Contact内容,现在可以从App.jsx中移除相关路由:

// App.jsx
import React from 'react';
import { BrowserRouter as Router, Route, Routes } from 'react-router-dom';
import NavBar from './components/NavBar';
import Footer from './components/Footer';
import Home from './pages/Home';
import ProfilePage from './pages/ProfilePage';
import CommingSoon from './pages/ComingSoon';

function App() {
  return (
    <Router>
      <div>
        <NavBar />
        <Routes>
          <Route path="/" element={<Home />} />
          <Route path="/Profile" element={<ProfilePage />} />
          <Route path="/CommingSoon" element={<CommingSoon />} />
        </Routes>
        <Footer />
      </div>
    </Router>
  )
}

export default App

修改完成后,点击导航栏的Contact链接会直接滚动到首页的Contact组件位置,首页的Hero、Mission等所有内容都会保留,不会被替换为其他页面。

内容的提问来源于stack exchange,提问作者Konvas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 08:30:56