美文网首页Web前端之路Web 前端开发 react
react-router中,<switch>标签存在

react-router中,<switch>标签存在

作者: 春木橙云 | 来源:发表于2018-05-23 10:36 被阅读851次

在学习中遇到这个问题,怎么翻译都没明白(果然看英文水平还不够啊),终于搞明白,记录下面,如果存在漏洞,望指正!

  • 有<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>

结果为:

解释:

有<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>

结果为:


解释:

无<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>

结果为:


结论:为了更好地匹配规则,轻易不要舍弃<Switch>。

相关文章

  • react-router中,<switch>标签存在

    在学习中遇到这个问题,怎么翻译都没明白(果然看英文水平还不够啊),终于搞明白,记录下面,如果存在漏洞,望指正! 有...

  • Redux简介

    Redux React-redux React-router Redux 1、基本用法: Redux中存在几个概念...

  • redux基础

    Redux react-redux React-router Redux 1、基本用法: Redux中存在几个概念...

  • HTML 4.01版

    复习 排版标签:p hr br pre 字体标签: 转义字符:<> 清单标签:有序列表...

  • 2019-03-20第二天

    常用的标签有 标题标签H系列 段落标签p系列 换行标签br 横线标签hr 常用的实体有<<>> © 空...

  • 2019-05-27第二天

    常用的标签有 标题标签H系列 段落标签p系列 换行标签br 横线标签hr 常用的实体有<<>> © 空...

  • 第二篇

    2.在HTML里打多个空格需要使用标签,一般标签有<;=<,> => =空格回车标签有...

  • jQuery html函数

    jQuery 的html()函数自动把不安全的标签 标签和&符号escape了 script标签被转换成 & lt...

  • Mybatis if标签判断数字大小

    if标签语法 条件表达式中大于号小于号用 gt,lt mapper xml

  • 09.React-Router

    1.安装react-router插件 2.路由使用 我们希望在一个页面中根据用户点击的不同标签显示不同的内容这里使...

网友评论

    本文标题:react-router中,<switch>标签存在

    本文链接:https://www.haomeiwen.com/subject/qfaljftx.html