歴史の中で反応し、ルータ
EACT-ルータは の歴史の上に構築されてい
履歴管理アプリケーションセッションのセッションJS JSライブラリの歴史。また異なる環境(ブラウザ、ノード...)履歴スタック、ナビゲーション、確認ジャンプ、およびセッション間で継続的な状態を管理するためのシンプルなAPIに変数を統一。
-
//基本的な使用
-
インポート
{createHistory}
から
「履歴」
-
-
constの
歴史= createHistory()
-
-
//現在のアドレス
-
CONST
位置= history.getCurrentLocation()
-
-
//現在のアドレス変換のために聞きます
-
CONST
UNLISTEN = history.listen(
位置 =>
{
-
コンソール
の.log(location.pathname)
-
})
-
-
//履歴スタックに新しい入り口
-
history.push({
-
パス名
:
'/ /パス'
、
-
検索
:
'?=クエリ'
、
-
-
いくつか// urlパラメータは、URLの現在の状態の値を超えて存在していません
-
状態:{ : '状態' }
-
})
-
-
//終了したら、リスナーを停止
-
UNLISTEN()
また、現在の場所を変更する歴史の使用に反対することができます。
- プッシュ(位置)
- 置き換え(場所)
- 行く(N)
- 戻る()
- 進む()
歴史は、ブラウザのアドレスバーの変化を監視し、位置オブジェクトにURLを解析して、ルーティングを使用してルータにそれを一致させる方法を知って、最後は正しく対応するコンポーネントをレンダリングします。
ロケーションオブジェクトは、次のとおりです。
3つの共通の歴史
パス名同window.location.pathname search 同window.location.search このアドレスにバンドルオブジェクトオブジェクトを述べます アクションPUSH、1をREPLACEまたはPOP キー固有のID
-
推奨// HTML5の歴史、
-
輸入
createHistory
から
の歴史/ libに/ createBrowserHistory "
-
-
//ハッシュ履歴
-
輸入
createHistory
から
の歴史/ libに/ createHashHistory "
-
-
//メモリ履歴(例:ノード環境)
-
輸入
createHistory
から
の歴史/ libに/ createMemoryHistory "
createHashHistory
これは、あなたが歴史を指定しない場合は、デフォルトの履歴を取得します1(すなわち<ルータ> {/ *あなたのルート* /} </ルータ>)です。ルートのhttp://example.com/#/some/path一部のような形を作成するために、URLのハッシュ(#)で使用されています。
それは任意の構成は、サーバー上で実行することができますすることはできません、それはIE8 +は、すべての一般的なブラウザで使用することができます含まれているため、ハッシュ履歴がデフォルトです。しかし、我々は、すべてのWebアプリケーションがcreateBrowserHistoryを使用するには、目的地を持っている必要があるため、実際の生産でそれを使用することをお勧めしません。
createBrowserHistory
ブラウザの履歴には、ルータを反応させるの歴史が推奨するブラウザアプリケーションを作成することです。これは、使用しています 歴史を APIは、このような新しい実 `URL example.com /いくつか/ PATH`として、ブラウザでハンドルURLに作成されました
createMemoryHistory
メモリの歴史は、操作やアドレスバーに読まれることはありません。これは、サーバーのレンダリングを実現する方法について説明します。同時に、それはまた、テストし、(ネイティブと反応のような)他のレンダリング環境に非常に適しています。
<li class="tool-item tool-active is-like "><a href="javascript:;"><svg class="icon" aria-hidden="true">
<use xlink:href="#csdnc-thumbsup"></use>
</svg><span class="name">点赞</span>
<span class="count">1</span>
</a></li>
<li class="tool-item tool-active is-collection "><a href="javascript:;" data-report-click="{"mod":"popu_824"}"><svg class="icon" aria-hidden="true">
<use xlink:href="#icon-csdnc-Collection-G"></use>
</svg><span class="name">收藏</span></a></li>
<li class="tool-item tool-active is-share"><a href="javascript:;"><svg class="icon" aria-hidden="true">
<use xlink:href="#icon-csdnc-fenxiang"></use>
</svg>分享</a></li>
<!--打赏开始-->
<!--打赏结束-->
<li class="tool-item tool-more">
<a>
<svg t="1575545411852" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5717" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M179.176 499.222m-113.245 0a113.245 113.245 0 1 0 226.49 0 113.245 113.245 0 1 0-226.49 0Z" p-id="5718"></path><path d="M509.684 499.222m-113.245 0a113.245 113.245 0 1 0 226.49 0 113.245 113.245 0 1 0-226.49 0Z" p-id="5719"></path><path d="M846.175 499.222m-113.245 0a113.245 113.245 0 1 0 226.49 0 113.245 113.245 0 1 0-226.49 0Z" p-id="5720"></path></svg>
</a>
<ul class="more-box">
<li class="item"><a class="article-report">文章举报</a></li>
</ul>
</li>
</ul>
</div>
</div>
<div class="person-messagebox">
<div class="left-message"><a href="https://blog.csdn.net/jimolangyaleng">
<img src="https://profile.csdnimg.cn/5/C/7/3_jimolangyaleng" class="avatar_pic" username="jimolangyaleng">
<img src="https://g.csdnimg.cn/static/user-reg-year/1x/8.png" class="user-years">
</a></div>
<div class="middle-message">
<div class="title"><span class="tit"><a href="https://blog.csdn.net/jimolangyaleng" data-report-click="{"mod":"popu_379"}" target="_blank">狼牙冷</a></span>
</div>
<div class="text"><span>发布了46 篇原创文章</span> · <span>获赞 28</span> · <span>访问量 25万+</span></div>
</div>
<div class="right-message">
<a href="https://im.csdn.net/im/main.html?userName=jimolangyaleng" target="_blank" class="btn btn-sm btn-red-hollow bt-button personal-letter">私信
</a>
<a class="btn btn-sm bt-button personal-watch" data-report-click="{"mod":"popu_379"}">关注</a>
</div>
</div>
</div>