react-router中,<switch>標簽存在意義說明

在學習中遇到這個問題,怎么翻譯都沒明白(果然看英文水平還不夠?。K于搞明白,記錄下面,如果存在漏洞,望指正!

  • 有<switch>標簽
            <BrowserRouter>
                <div>
                    <div>
                        <ul>
                            <li>
                                <Link to="/Guide/ContactUs">ContactUs</Link>
                            </li>
                        </ul>
                    </div>
                    <Switch>
                        <Route path="/Guide/ContactUs" component={ ContactUs } ></Route>
                        <Route path="/Guide/ContactUs" component={ ContactUs } ></Route>
                    </Switch>
                </div>
            </BrowserRouter>

結(jié)果為:

解釋:

有<Switch>標簽,則其中的<Route>在路徑相同的情況下,只匹配第一個,這個可以避免重復匹配;

  • 無<switch>標簽
            <BrowserRouter>
                <div>
                    <div>
                        <ul>
                            <li>
                                <Link to="/Guide/ContactUs">ContactUs</Link>
                            </li>
                        </ul>
                    </div>
                        <Route path="/Guide/ContactUs" component={ ContactUs } ></Route>
                        <Route path="/Guide/ContactUs" component={ ContactUs } ></Route>
                </div>
            </BrowserRouter>

結(jié)果為:


解釋:

無<Switch>標簽,則其中的<Route>在路徑相同的情況下全都會匹配。更嚴重的是,還會匹配上級路徑的,如下面例子:

            <BrowserRouter>
                <div>
                    <div>
                        <ul>
                            <li>
                                <Link to="/Guide/AboutUs">AboutUs</Link>
                            </li>
                        </ul>
                    </div>
                        <Route path="/Guide/ContactUs" component={ ContactUs } ></Route>
                        <Route path="/Guide/ContactUs" component={ ContactUs } ></Route>
                        <Route path="/Guide" component={ AboutUs } ></Route>
                </div>
            </BrowserRouter>

結(jié)果為:


結(jié)論:為了更好地匹配規(guī)則,輕易不要舍棄<Switch>。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,554評論 19 139
  • React-Router v4 1. 設計理念1.1. 動態(tài)路由1.2. 嵌套路由1.3. 響應式路由 2. 快速...
    wlszouc閱讀 8,715評論 0 14
  • <BrowserRouter> 使用 HTML5 提供的 history API (pushState, repl...
    強子_30fd閱讀 88,009評論 0 59
  • 大家天天說情商情商,情商在戀愛中到底是一種什么樣的存在和體現(xiàn)呢?我今天就來舉舉例子對比對比。 1 女:如果我們見面...
    旭哥戀愛指導閱讀 404評論 0 0
  • 《神算網(wǎng)紅[古穿今]》作者:云舞輕 文案: *古穿今*玄學大師*蘇爽* 某日,微博上某玄學大v發(fā)了一張女性自拍,吃...
    zhaozhanzhan閱讀 1,454評論 0 0

友情鏈接更多精彩內(nèi)容