{"id":1065,"date":"2023-03-12T10:21:42","date_gmt":"2023-03-12T02:21:42","guid":{"rendered":"https:\/\/www.appblog.cn\/?p=1065"},"modified":"2023-04-29T11:46:31","modified_gmt":"2023-04-29T03:46:31","slug":"react-router-routing-configuration","status":"publish","type":"post","link":"https:\/\/www.appblog.cn\/index.php\/2023\/03\/12\/react-router-routing-configuration\/","title":{"rendered":"React-Router\u8def\u7531\u914d\u7f6e"},"content":{"rendered":"<p>React\u8def\u7531\u4f7f\u7528<code>react-router-dom<\/code>\u5b9e\u73b0\uff0c\u5b83\u63d0\u4f9b\u4e86<code>BrowserRouter<\/code>\u3001<code>Route<\/code>\u3001<code>Link<\/code>\u7b49api\uff0c\u53ef\u4ee5\u901a\u8fc7dom\u4e8b\u4ef6\u63a7\u5236\u8def\u7531\u3002<\/p>\n<p>\u6dfb\u52a0<code>react-router-dom<\/code>\u5e93<\/p>\n<p><!-- more --><\/p>\n<pre><code class=\"language-javascript\">yarn add react-router-dom<\/code><\/pre>\n<p>\u65b0\u5efa\u4e24\u4e2a\u7ec4\u4ef6<code>aaa.js<\/code>\u548c<code>bbb.js<\/code><\/p>\n<pre><code class=\"language-javascript\">import React, { Component } from &#039;react&#039;;\n\nclass AAA extends Component {\n    render() {\n        return (\n            &lt;div&gt;\n                &lt;h1&gt;AAA&lt;\/h1&gt;\n            &lt;\/div&gt;\n        )\n    }\n}\nexport default AAA;<\/code><\/pre>\n<pre><code class=\"language-javascript\">import React, { Component } from &#039;react&#039;;\n\nclass BBB extends Component {\n    render() {\n        return (\n            &lt;div&gt;\n                &lt;h1&gt;BBB&lt;\/h1&gt;\n            &lt;\/div&gt;\n        )\n    }\n}\nexport default BBB;<\/code><\/pre>\n<p>\u5c06\u521a\u521a\u7684\u4e24\u4e2a\u7ec4\u4ef6\uff0c\u548c<code>react-router-dom<\/code>\u4e2d\u7684\u4e00\u4e9bapi\u5bfc\u5165\u9996\u9875app.js\u3002\u8fd9\u91cc\u7528\u4e86<code>BrowserRouter<\/code>\uff0c\u5f53\u7136\u4e5f\u53ef\u4ee5\u7528<code>HashRouter<\/code>\uff0c\u5dee\u522b\u5c31\u662f\u5730\u5740\u680f\u6709\u6ca1\u6709<code>#<\/code>\u3002\u6bd4\u5982\u7528<code>HashRouter<\/code>\u5730\u5740\u680f\u5c31\u662f\uff1a<code>http:\/\/localhost:3000\/#\/<\/code><\/p>\n<pre><code class=\"language-javascript\">import { BrowserRouter, Route, Link, Switch } from &#039;react-router-dom&#039;;\nimport AAA from &#039;.\/aaa&#039;;\nimport BBB from &#039;.\/bbb&#039;;<\/code><\/pre>\n<p>\u7136\u540e\u5728Dom\u91cc\u7528<code>Link<\/code>\u6765\u6539\u53d8\u5730\u5740\u680f\u7684url\uff0c\u6ce8\u610f<code>Link<\/code>\uff0c<code>Route<\/code>\u8fd9\u4e9bapi\u90fd\u9700\u8981\u5199\u5728<code>&lt;BrowserRouter&gt;<\/code>\u91cc<\/p>\n<pre><code class=\"language-javascript\">&lt;BrowserRouter&gt;\n    &lt;div className=&quot;App&quot;&gt;\n        &lt;Button type=&quot;primary&quot;&gt;&lt;Link to=&#039;\/aaa&#039;&gt;\u5bfc\u822aA&lt;\/Link&gt;&lt;\/Button&gt;\n        &lt;Button&gt;&lt;Link to=&#039;\/bbb&#039;&gt;\u5bfc\u822aB&lt;\/Link&gt;&lt;\/Button&gt;\n    &lt;\/div&gt;\n&lt;\/BrowserRouter&gt;<\/code><\/pre>\n<p>\u6b64\u65f6\u70b9\u51fb\u6309\u94ae\u53ef\u4ee5\u770b\u5230\u5730\u5740\u680f\u662f\u6539\u53d8\u7684\uff0c\u4f1a\u53d8\u6210<code>http:\/\/localhost:3000\/aaa<\/code>\u548c<code>http:\/\/localhost:3000\/bbb<\/code>\u3002<\/p>\n<p>\u7136\u540e\uff0c\u5728\u4e0b\u65b9\u52a0\u4e0a\u8981\u901a\u8fc7\u8def\u7531\u5207\u6362\u7684\u7ec4\u4ef6\uff0c\u5f53path\u4e3a<code>aaa<\/code>\u6216\u8005<code>bbb<\/code>\u7684\u65f6\u5019\u5206\u522b\u52a0\u8f7d<code>AAA<\/code>\u548c<code>BBB<\/code>\u3002<\/p>\n<pre><code class=\"language-javascript\">&lt;BrowserRouter&gt;\n    &lt;div className=&quot;App&quot;&gt;\n        &lt;Button type=&quot;primary&quot;&gt;&lt;Link to=&#039;\/aaa&#039;&gt;\u5bfc\u822aA&lt;\/Link&gt;&lt;\/Button&gt;\n        &lt;Button&gt;&lt;Link to=&#039;\/bbb&#039;&gt;\u5bfc\u822aB&lt;\/Link&gt;&lt;\/Button&gt;\n        &lt;Switch&gt;\n            &lt;Route path=&quot;\/aaa&quot; exact component={AAA} \/&gt;\n            &lt;Route path=&quot;\/bbb&quot; exact component={BBB} \/&gt;\n        &lt;\/Switch&gt;\n    &lt;\/div&gt;\n&lt;\/BrowserRouter&gt;<\/code><\/pre>\n<p>\u6b64\u65f6\uff0c\u5728\u6d4f\u89c8\u5668\u4e2d\u70b9\u51fb\u4e24\u4e2a\u6309\u94ae\uff0c\u5c31\u80fd\u770b\u5230\u4e0b\u65b9\u53ef\u4ee5\u5207\u6362\u4e24\u79cd\u7ec4\u4ef6\u3002<\/p>\n<p>\u5b8c\u6574\u4ee3\u7801\uff1a<\/p>\n<pre><code class=\"language-javascript\">import React from &#039;react&#039;;\nimport { Button, Row } from &#039;antd&#039;;\nimport { BrowserRouter, Route, Link, Switch } from &#039;react-router-dom&#039;;\nimport AAA from &#039;.\/aaa&#039;;\nimport BBB from &#039;.\/bbb&#039;;\n\nclass RouterTest extends React.Component {\n    constructor(props) {\n        super(props);\n    }\n\n    render() {\n        return (\n            &lt;BrowserRouter&gt;\n                &lt;div className=&quot;App&quot;&gt;\n                    &lt;Row type=&quot;flex&quot; justify=&quot;center&quot;&gt;\n                        &lt;Button type=&quot;primary&quot;&gt;&lt;Link to=&#039;\/aaa&#039;&gt;\u5bfc\u822aA&lt;\/Link&gt;&lt;\/Button&gt;\n                        &lt;Button&gt;&lt;Link to=&#039;\/bbb&#039;&gt;\u5bfc\u822aB&lt;\/Link&gt;&lt;\/Button&gt;\n                    &lt;\/Row&gt;\n                    &lt;Row type=&quot;flex&quot; justify=&quot;center&quot;&gt;\n                        &lt;Switch&gt;\n                            &lt;Route path=&quot;\/aaa&quot; exact component={AAA} \/&gt;\n                            &lt;Route path=&quot;\/bbb&quot; exact component={BBB} \/&gt;\n                        &lt;\/Switch&gt;\n                    &lt;\/Row&gt;\n                &lt;\/div&gt;\n            &lt;\/BrowserRouter&gt;\n        );\n    }\n}\n\nexport default RouterTest;<\/code><\/pre>\n<p>\u8fd9\u662f\u6700\u7b80\u5355\u7684\u4e00\u4e2a\u8def\u7531\u7684\u5b9e\u73b0\u3002\u5728\u5b9e\u9645\u7684\u5f00\u53d1\u4e2d\uff0c\u4e00\u822c\u6765\u8bb2\u6211\u4eec\u4f1a\u5728\u4e0a\u65b9\u6216\u5de6\u4fa7\u7b80\u5386\u5bfc\u822a\u680f\uff0c\u901a\u8fc7\u7ed9\u5bfc\u822a\u680f\u5143\u7d20\u6dfb\u52a0<code>&lt;Link&gt;<\/code>\u6765\u52a0\u8f7d\u9875\u9762\u5269\u4e0b\u7684\u5185\u5bb9\u3002\u542c\u8d77\u6765\u6709\u70b9\u50cfiframe\uff1f\u4f46\u662f\u8def\u7531\u5207\u6362\u4e0d\u4f1a\u50cfiframe\u4e00\u6837\u76f4\u63a5\u52a0\u8f7d\u4e00\u4e2a\u9875\u9762\u8fdb\u6765\uff0c\u53ea\u662f\u901a\u8fc7\u8def\u5f84\u5339\u914d\u7ec4\u4ef6\u7684\u5207\u6362\u3002<\/p>\n<p>\u5f53\u7136\uff0c\u5b9e\u9645\u7684\u5f00\u53d1\u4e2d\u6211\u4eec\u4e5f\u4e0d\u4f1a\u8fd9\u4e48\u4e0d\u89c4\u8303\u7684\u76f4\u63a5\u628a\u8def\u7531\u90fd\u5199\u5728\u9996\u9875\u91cc\uff0c\u4e00\u822c\u4f1a\u5355\u5199\u4e00\u4e2a<code>router.js<\/code>\u4e13\u95e8\u8d1f\u8d23\u8def\u7531\u7684\u63a7\u5236\u3002\u5728\u540e\u9762\u7684<code>Dva<\/code>\u6846\u67b6\u4e2d\uff0c\u6211\u4eec\u4f1a\u770b\u5230<code>Dva<\/code>\u628a\u8def\u7531\u3001\u516c\u7528\u7ec4\u4ef6\u3001\u6a21\u578b\u6587\u4ef6\u3001\u670d\u52a1\u6587\u4ef6\u7b49\u5728\u521b\u5efa\u5de5\u7a0b\u65f6\u5c31\u5e2e\u6211\u4eec\u5206\u7c7b\u597d\u4e86\uff0c\u8fd9\u6837\u6574\u4e2a\u5de5\u7a0b\u7ed3\u6784\u5c31\u975e\u5e38\u6e05\u6670\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>React\u8def\u7531\u4f7f\u7528react-router-dom\u5b9e\u73b0\uff0c\u5b83\u63d0\u4f9b\u4e86BrowserRouter\u3001Route\u3001Lin [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[36],"tags":[],"class_list":["post-1065","post","type-post","status-publish","format-standard","hentry","category-react"],"_links":{"self":[{"href":"https:\/\/www.appblog.cn\/index.php\/wp-json\/wp\/v2\/posts\/1065","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.appblog.cn\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.appblog.cn\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.appblog.cn\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.appblog.cn\/index.php\/wp-json\/wp\/v2\/comments?post=1065"}],"version-history":[{"count":0,"href":"https:\/\/www.appblog.cn\/index.php\/wp-json\/wp\/v2\/posts\/1065\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.appblog.cn\/index.php\/wp-json\/wp\/v2\/media?parent=1065"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.appblog.cn\/index.php\/wp-json\/wp\/v2\/categories?post=1065"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.appblog.cn\/index.php\/wp-json\/wp\/v2\/tags?post=1065"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}