反応-ルータ:コアライブラリのISは、ルータを反応させます
ルータ-DOM反応:ルーティングソリューションは反応し、ルータによっては、ウェブページです
反応ルータネイティブ:移動端末が反応ネイティブルーティングソリューションを解決するために、反応し、反応に応じて
以下は反応し-ルータ-DOMの使用が記載されています
ここで反応し、ルータのバージョンが5.xのです
そこに反応-router5.x使用の非常に異なるバージョンがあると反応し、router3.x
ルーティングモジュールのインストール
NPM I -S反応-ルータ-DOM
2ルーティング定義
App.jsx
これは、4ページを定義します
<ルータ>、ルーティングインスタンスを定義するルーティング容器に対応
<スイッチ>タグは単一の<ルート>を一致のみルーティング可能、ルーティング含む複数の一致しません
5.xのルート経路を有し、完全に異なる3.xのを含みます
正確なルート属性と同じマッチが成功すると、厳密一致させることができます、唯一の道は、まさに、真のデフォルト値は、省略することができます
EQ:
「、ページのルートと一致する<急が>タグが存在しない場合は「/」、一致するように上から下へ順をルーティング照合されます、成功した試合になります「/」、「/」について、「/受信トレイ」/コーダ「すべての<ルート>タグは、それによって、その関連する構成要素を示します。
添加後<急が>タグ、単一のルートと一致することができ、<ルート>タグので、ここでの唯一の経路と一致=「/」は<ルート>タグ
Webページに「/」について一致が、時間やパス=「/」ルートにマッチされる場合は、それがパスする必要がある=「/」<ルート>タグの追加を許可属性れる厳密に正確なマッチング、唯一の完全なパスこれは、「/」、加算後の正確な性質は、ルーティングパスに一致しません=「/」ルートに成功したマッチと等しくなるが、経路「約」=パスにマッチします
3.ページをレンダリングするためにルーティングされます
index.js
関連するコンポーネントの以下の詳細な説明
ディレクトリ構造:
Dashboard.jsxウェブルートコンポーネント
这里有个公共组件Header
Header.jsx
<Link>标签用来进行路由跳转,默认会被渲染成a标签
About.jsx
Inbox.jsx
这里面嵌套了两个子路由,对应的组件分别是MessageLinkComponent和Message
其中一个是动态路由,以id值作为动态路径
获取父级路由的路径path:this.props.match.path,这里获取到的path是 ‘/inbox’
与this.props.match.url比较:
this.props.match.path获取的是纯路径,即定义好的路径 ‘/index/:id’
this.props.match.url获取的是资源的路径地址 ‘/index/123’
子路由组件:MessageLinkComponent.jsx
实现子路由的跳转,并把id值当成动态路径传出
子路由组件:Message.jsx
子路由跳转的内容显示
id值的获取:this.props.match.params.id
Coder.jsx
定义了一个子路由,其对应的组件是CoderContent
并且定义了子路由跳转的Link,实现子路由跳转,将相关数据以键值对存放于路径中并传递出去
CoderContent.jsx
通过get传值传递来的键值对用node的url模块进行解析,解析出一个以json对象保存的query对象,并将其展示在页面上
url.parse(this.props.location.search,true).query
路由模块的抽离
将路由的定义抽离成一个配置文件routesConfig.js
routesConfig.js
相关页面也需要改写
App.jsx
这里用三元表达式代替了if-else语句的嵌套
注意:子路由的嵌套要将component属性改写成一个render函数,这样才能将children子路由对象传递给props参数
render函数是一个带props参数的箭头函数,结果返回一个react组件实例对象(jsx对象)
子どもとprops.childrenカバーの特性と同等のルーティングオブジェクトインスタンスの子供の性質をサブマウント。
ここからは、<ルート>の役割を見ることができ、タグは単に中間構成要素として機能し、最終的にレンダリングする必要があります
アセンブリをレンダリングするコンポーネントの機能属性の例は、<ルート>タグ小道具パラメータに吊りによって、関連した、表示され
たとえば、次のパス属性<ルート>最終的に反応する取得this.props.match.pathコンポーネントインスタンスに形成します
Inbox.jsx
Coder.jsx