首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

React router dom:点击链接,刷新当前页面,但不转到目标页面

React Router Dom是React路由库的一部分,它提供了一种在React应用程序中管理导航和页面路由的方法。React Router Dom使用了HTML5历史API(pushState,replaceState和popstate事件)来为应用程序提供无刷新的页面转换和导航功能。

点击链接刷新当前页面,但不转到目标页面可以通过使用React Router Dom中的<Link>组件以及路由配置来实现。当点击<Link>组件时,可以设置其to属性为目标页面的路径,然后通过在路由配置中定义相应的<Route>组件来渲染目标页面的内容。为了使点击链接刷新当前页面,但不转到目标页面,需要设置<Link>组件的replace属性为true。

以下是一个示例:

代码语言:txt
复制
import { BrowserRouter as Router, Link, Route } from 'react-router-dom';

const Home = () => <h1>首页</h1>;
const About = () => <h1>关于我们</h1>;

const App = () => (
  <Router>
    <div>
      <Link to="/" replace>首页</Link>
      <Link to="/about" replace>关于我们</Link>
      <Route exact path="/" component={Home} />
      <Route path="/about" component={About} />
    </div>
  </Router>
);

export default App;

在上面的例子中,当点击链接时,页面将会刷新并且渲染相应的内容,但URL不会变化,仍然保持当前页面的URL。

对于React Router Dom的详细使用方法和更多功能,请参考腾讯云的文档: React Router Dom 使用文档

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

无废话快速上手React路由

本文以简洁为目标,帮助快速上手react-router-dom默认你接触过路由相关的开发 安装 输入以下命令进行安装: // npm npm install react-router-dom // yarn...路由匹配优化 当点击跳转链接时,会自动去尝试匹配所有的Route对应的路径,如图所示: ?...,返回上一个页面) 举个例子:在路由组件 Home 中设置一个按钮 button ,点击后调用 push 方法,跳转到 /about 页面 import React from 'react' function...可以看到,刚开始的路径是 ‘/’ ,然后跳转到 ‘/home’ ,再点击按钮,通过 replace 方法跳转到 /about 页面。...例如 go(-3) 相当于调用了三次 goBack 方法 当参数为 0 时,表示刷新当前页面 普通组件使用路由 这里区分两个概念,分别为 普通组件 和 路由组件 通过 Route 组件渲染的组件为路由组件

1.8K20

React-Router

介绍 ​ react-router被分为以下几部分: react-router是浏览器和原生应用中的通用部分。 react-router-dom是用于浏览器的。...react-router-native是用于原生应用的。 ​ react-router是核心部分。react-router-dom提供了浏览器使用需要的定制组件。...Link组件 ​ 使用可以在React应用的不同页面之间跳转,只会加载页面里和当前url可以匹配的部分。...replace属性设置为true时,点击链接后将使用新地址替换掉访问历史记录里面的原地址。设置为false时,点击链接后将在原有访问历史的基础上添加一个新纪录。 ​...它的一个用途是登陆重定向,比如用户在点击登录按钮并通过验证之后,将页面转到个人主页。 Switch组件 ​ 渲染匹配地址(location)的第一个或者。

2.4K20
  • 2021前端react高频面试题汇总

    如何配置 React-Router 实现路由切换 (1)使用 组件 路由匹配是通过比较 的 path 属性和当前地址的 pathname 来实现的。...4. react-router 里的 Link 标签和 a 标签的区别 从最终渲染的 DOM 来看,这两者都是链接,都是 标签,区别是∶ 是react-router 里实现路由跳转的链接,一般配合... 使用,react-router接管了其默认的链接跳转行为,区别于传统的页面跳转, 的“跳转”行为只会触发相匹配的对应的页面内容更新,而不会刷新整个页面。...,并没有刷新页面而标签就是普通的超链接了,用于从当前页面转到href指向的另一 个页面(非锚点情况)。...(2)获取历史对象 如果React >= 16.8 时可以使用 React Router中提供的Hooks import { useHistory } from "react-router-dom";

    5.4K00

    2022前端社招React面试题 附答案

    2022前端社招React面试题 附答案 React视频讲解 点击学习 全部视频:点击学习 1. React-Router的实现原理是什么?...4. react-router 里的 Link 标签和 a 标签的区别 从最终渲染的 DOM 来看,这两者都是链接,都是 标签,区别是∶ 是react-router 里实现路由跳转的链接,一般配合... 使用,react-router接管了其默认的链接跳转行为,区别于传统的页面跳转, 的“跳转”行为只会触发相匹配的对应的页面内容更新,而不会刷新整个页面。...,并没有刷新页面而标签就是普通的超链接了,用于从当前页面转到href指向的另一 个页面(非锚点情况)。...(2)获取历史对象 如果React >= 16.8 时可以使用 React Router中提供的Hooks import { useHistory } from "react-router-dom";

    4.7K30

    ReactRouter的实现

    H5提供的pushState()、replaceState()等方法以及popstate等事件,这些方法都是也可以改变路由路径,但不页面跳转,当然如果在后端不配置好的情况下路由改编后刷新页面会提示404...ReactRouter将路由拆成了几个包: react-router负责通用的路由逻辑,react-router-dom负责浏览器的路由管理,react-router-native负责react-native...// packages\react-router-dom\modules\HashRouter.js line 10 class BrowserRouter extends React.Component...preventDefault禁止默认的跳转,所以实际上这里的href并没有实际的作用,但仍然可以标示出要跳转到页面的URL并且有更好的html语义。...// packages\react-router-dom\modules\Link.js line 14 class Link extends React.Component { handleClick

    1.4K10

    React Router初学者入门指南(2023版)

    然而,当你想在导航时保留应用程序的当前状态时,就会出现问题。不幸的是,普通的链接通常会触发页面刷新来显示组件,从而破坏用户体验。这就是React Router的用武之地。...React Router允许您在应用程序中定义不同的路由,并将它们链接到各自的组件,而无需重新加载页面。这种方法使得React Router能够轻松更新页面上的内容,并使网站感觉像一个原生应用程序。...这就是React Router在不刷新页面的情况下来回导航路由的方式。 Location:这指的是在浏览网站时当前所在的URL。...在React Router中, Link 是路由导航的主要方式。链接组件在底层使用 a 标签,但通过阻止默认页面重新加载来增强它。...因此,当点击任何这些链接时,React Router会从 to 属性获取URL,匹配正确的 route 路径,并渲染指定的组件。

    57231

    react-router 的使用与优化

    history 还有三个方法,调用这三个方法相当于点击了前进或者后退按钮,但页面刷新: back() 表示向后跳转一个页面; forward() 表示向前跳转一个页面; go(number) 当是负值时表示向后移动一个页面...要在 web 开发中使用 Router 组件,需要先下载 react-router-dom 包。而如果是开发 react-native 应用,应下载 react-router-native 包。...当我们访问 /user/123456 时就可以跳转到 ID 为 123456 的用户页面。在 react-router 中可以通过 props.match.params 获取到传入的参数值。...从服务器端发送一个恰当的重定向链接即可。location 就是将服务端接收到的 URL 传递给路由来处理。 与 Redux 结合 react-router 可以与 redux 深度结合。...from 'react'; import ReactDOM from 'react-dom'; import { BrowserRouter } from "react-router-dom"; import

    3.2K10

    大前端开发中的路由管理之二:web篇

    ,所以当刷新浏览器时js会重新执行,当前页面的内容便会丢失;页面跳转时浏览器不会向服务器发出新的页面请求,浏览器也就无法前进、后退页面。         ...所以前端web路由需要实现以下目标:       (1)能根据页面URL来获取不同的模块,但不发起新的页面请求;       (2)能监听URL的变化。         ...div id="push_btn">         最后提一点,由于history是通过改变URL来进行路由的,当刷新页面时浏览器会向服务器访问当前地址...由于其不符合上述的目标,所以这里只是简单介绍其实现原理。实现方式就是利用window.localstorage保存当前的路径,根据路径映射出页面内容。...以上便是web路由管理的几种常见实现方式,实现过程比较粗糙,希望能有助于大家在使用现代优秀的路由组件,如vue-routerreact-router时能更好的运用在项目中。

    1.6K20

    不用React Vue,只用原生JS,如何开发单页面应用?

    以前我们访问网页,每个页面是一个html文件。点击某个超链接,就跳转到新的html页面。每次浏览器访问html时,需要重新下载整个html文档、JS和CSS依赖,才能展现出整个页面。这个效率很低。...开发者可以很方便的使用React、Vue开发单页面应用,是因为React Router和Vue Router帮开发者实现了单页面应用的核心逻辑。...使用History API修改网址后,页面不会有任何变化,只是浏览器URL变了。我们需要手动操控当前页面DOM的销毁、新页面DOM的生成。...使用History API修改网址后,当用户点击浏览器的「返回」、「前进」时,页面不会刷新,只是浏览器URL变了。...我们需要监听事件onpopstate,即监听用户点击浏览器的「返回」、「前进」,然后操控当前页面DOM的销毁、新页面DOM的生成。

    9.6K51

    React Router V6详解

    相比于传统的Web应用,SPA一个最重要的特性就是改变路由时不会触发整个页面刷新,只会刷新需要刷新的模块或组件。...并且,react-router-domreact-router-native都需要依赖react-router,所以在安装时会自动安装react-router。...npm:npm install react-router-dom@6 //或者 yarn:yarn add react-router-dom@6 1.3 路由模式 在单页面应用中,为了实现切换页面刷新浏览器的功能在...Router原理 与后端路由不同,前端网站都是单页面应用,要实现路由切换时不触发整个页面刷新,就需要前端路由框架满足两个关键点。...改变路径url时不触发页面刷新 当url发生改变时会重新渲染url对应的界面 所以,我们谈React Router的原理,其实就是分析订阅和操作history堆栈、URL 与router匹配以及渲染router

    7.9K50

    前端路由的原理及应用

    route表示为对应的url指定的视图函数,refresh函数为刷新页面的函数。...window.history.forward(); // 跳转到history中指定的一个点 windiw.history.go(); 用go()方法载入到会话历史中的某一个特定页面,通过与当前页面相对位置来标记...并且,这两个API都会操作浏览器的历史栈,而不会引起页面刷新。 不同的是,pushState 将指定的url直接压入历史记录栈顶,而 replaceState 则是将当前历史记录栈换成传入的数据。...下面来个例子,看一下 react-router 的使用: import React from "react"; import {render} from "react-dom"; import {Router..., Route, Link } from 'react-router-dom'; import createBrowserHistory from 'history/createBrowserHistory

    2.3K20

    React编程式路由导航

    使用编程式路由导航在使用编程式路由导航之前,确保您已经安装了react-router-dom库:npm install react-router-dom接下来,让我们看一个使用编程式路由导航的示例:import...React from 'react';import { BrowserRouter as Router, Route, Link, useHistory } from 'react-router-dom...当用户点击按钮时,会通过代码将页面导航到/about路由对应的页面。我们使用useHistory钩子从react-router-dom库中获取了history对象。...通过history.push('/about'),我们可以跳转到/about页面。这是一种动态的、根据特定条件进行页面导航的方法。编程式导航与参数传递编程式导航还可以用于向目标页面传递参数。...例如,我们可以在导航时通过对象传递参数,然后在目标页面中使用这些参数。

    1.6K20

    react ---- Router路由的使用和页面跳转

    React-Router的中文文档可以参照如下链接: http://react-guide.github.io/react-router-cn/docs/Introduction.html 首先,我们打开已经构建完成的...'react'; import { BrowserRouter as Router,Route} from 'react-router-dom'; import Home from '....组件,这个组件由react-router-dom内部定义,用于链接跳转,在render函数的return中设置3对Link标签,to后面填写Page1的地址(“/Page1/”、“/Page1”皆可),...点击其中一个链接就可以跳转到特定的页面,比如Page1: ? 注意,这里的跳转并没有访问新的html文件,而是由React改变了原本html页面中的内容。...现在,我们已经成功地使用 Router、Route 和 Link 实现了React页面跳转的功能.

    2.8K10

    2021前端react高频面试题汇总

    如何配置 React-Router 实现路由切换 (1)使用 组件 路由匹配是通过比较 的 path 属性和当前地址的 pathname 来实现的。...4. react-router 里的 Link 标签和 a 标签的区别 从最终渲染的 DOM 来看,这两者都是链接,都是 标签,区别是∶ 是react-router 里实现路由跳转的链接,一般配合... 使用,react-router接管了其默认的链接跳转行为,区别于传统的页面跳转, 的“跳转”行为只会触发相匹配的对应的页面内容更新,而不会刷新整个页面。...,并没有刷新页面而标签就是普通的超链接了,用于从当前页面转到href指向的另一 个页面(非锚点情况)。...(2)获取历史对象 如果React >= 16.8 时可以使用 React Router中提供的Hooks import { useHistory } from "react-router-dom";

    5K20

    React路由

    文档:https://react-router.docschina.org/web/guides/philosophy ​ react路由的基本使用 安装:npm i react-router-dom...from 'react-dom' // 导入路由组件 import { BrowserRouter as Router, Route, Link } from "react-router-dom...NavLink组件 NavLink可以实现路由链接的高亮,通过activeClassName指定样式名。当点击哪个导航链接,哪个导航菜单就会应用activeClassName指定的样式。 ​...在 react-router-dom的6.x版本中,“Switch”被替换为了“Routes”,需要更新导入语句 import { Switch, Route } from "react-router-dom...push(path):跳转到某个页面,参数path表示要跳转的路径 go(n):前进或后退到某个页面,参数n表示前进或后退页面数量(比如:-1表示后退到上一页) 为什么是从props上拿到history

    2.6K10

    React前端路由

    前端路由的概念前端路由是一种在单页面应用中管理不同页面之间导航和渲染的机制。与传统的多页面应用不同,前端路由允许在同一个页面中切换不同的组件,而无需进行完整的页面刷新。...当用户在应用程序中进行导航时,前端路由会根据URL的变化来决定要渲染的组件,并更新页面内容。React中的前端路由可以实现以下功能:路由匹配:根据当前URL的路径匹配要渲染的组件。...页面导航:通过点击链接或执行编程式导航来切换页面。参数传递:通过URL的查询参数或路径参数将数据传递给要渲染的组件。嵌套路由:支持嵌套的路由结构,使应用程序可以有多个层级的页面。...React-Router-DOMReact-Router-DOM是基于React Router的一个扩展库,专门用于构建基于浏览器的前端路由。...React Router示例下面是一个使用React Router库的示例,展示了如何在React中实现前端路由:首先,安装React Router库:npm install react-router-dom

    1.7K20

    前端路由三种模式原理

    在历史记录中替换当前记录。 可以改变网址(存在跨域限制)而不刷新页面,这个强大的特性后来用到了单页面应用如:vue-routerreact-router-dom中。...状态对象:传给目标路由的信息,可为空 页面标题:目前所有浏览器都不支持,填空字符串即可 可选url:目标url,不会检查url是否存在,且不能跨域。...如不传该项,即给当前url添加data popstate事件会在点击后退、前进按钮(或调用history.back()、history.forward()、history.go()方法)时触发。...url:要跳转到的URL地址,不能跨域。 将当前URL和history.state加入到history中,并用新的state和URL替换当前。不会造成页面刷新。...用新的state和URL替换当前。不会造成页面刷新

    1K30

    第二十一篇:从 React-Router 切入,系统学习前端路由解决方案

    注:没有使用过 React-Router 的同学,可以点击这里完成快速上手。 1...., Route, Link } from "react-router-dom"; // 导出目标组件 const BasicExample = () => ( // 组件最外层用 Router...: 当我点击不同的链接时,ul 元素内部就会展示不同的组件内容。...比如当我点击“About”链接时,就会展示 About 组件的内容,效果如下图所示:  注意,点击 About 后,界面中发生变化的地方有两处(见下图标红处),除了 ul 元素的内容改变了之外,路由信息也改变了...当用户刷新页面时,浏览器会默认根据当前 URL 对资源进行重新定位(发送请求)。这个动作对 SPA 是不必要的,因为 SPA 作为单页面,无论如何也只会有一个资源与之对应。

    44710

    React路由

    想要实现单页应用程序(SPA),就必须使用到路由 react-router 官网:react-router 路由基本使用 基本步骤 安装 yarn add react-router-dom react-router-dom...这个包提供了三个核心的组件 import { HashRouter, Route, Link } from 'react-router-dom' 使用HashRouter包裹整个应用,一个项目中只会有一个...Router // … 省略页面内容 使用Link指定导航链接 <Link to=..., Route, Link } from 'react-router-dom' Link与NavLink Link组件最终会渲染成a标签,用于指定路由导航 to属性,将来会渲染成a标签的href属性 Link...编程式导航:通过 JS 代码来实现页面跳转 history 是 React 路由提供的,用于获取浏览器历史记录的相关信息 push(path):跳转到某个页面,参数 path 表示要跳转的路径 go(n

    2K20
    领券