react-router-dom - 链接和history.push之间的区别?

Posted

技术标签:

【中文标题】react-router-dom - 链接和history.push之间的区别?【英文标题】:react-router-dom - Difference between link and history.push? 【发布时间】:2019-04-21 03:49:09 【问题描述】:

href和link的区别我明白了。

但我想知道使用链接和withrouter 与history.push 之间的区别? 如果我已经访问过该页面,history.push 是否会在缓存中检索该页面?

使用链接:

<Link className="btn btn-primary" onClick=logout to="/">
 Log out
</Link>

使用历史:

constructor(props) 
        super(props);
        this.handleLogout = this.handleLogout.bind(this);
    ;

    handleLogout(e) 
        const  history  = this.props;
        logout()
        history.push("/");

    
<button type="button" onClick=this.handleLogout>Log out</button>

【问题讨论】:

可能有用:***.com/questions/51116747/… 【参考方案1】:

通过链接,您可以导航到另一个“页面”,例如包装一个按钮并在单击时进行重定向。大多数情况下,这是您可能想要做的。 但在某些情况下,您希望以编程方式导航到另一个“页面”。例如,当您的应用程序发生与单击按钮或链接无关的更改时。

因此,您可以使用 history.push 以编程方式更改 url,而无需单击按钮或链接。 =)

【讨论】:

所以这是唯一的区别?在什么情况下使用它们?在功能方面它们是相同的吗?

以上是关于react-router-dom - 链接和history.push之间的区别?的主要内容,如果未能解决你的问题,请参考以下文章

react-router-dom 链接点击关闭引导模式窗口

如何在 react-router-dom 链接中传递参数? [复制]

如何使 Material UI 反应按钮充当 react-router-dom 链接?

react-router-dom 链接在 app.js(父组件)中有效,但在子组件中无效

react-router-dom 链接没有转到页面内容

Storybook - 无法模拟嵌套的 React-Router-Dom 链接而不抛出无尽的 NPM 错误