React-Router算法如何工作?

时间:2016-08-28 09:55:28

标签: javascript algorithm reactjs react-router

有人能解释一下React-Router如何组装这些组件吗?

我的意思是:以React-Router文档中的代码为例......

<Router history={browserHistory}>
  <Route path="/" component={App}>
    <Route path="about" component={About}/>
    <Route path="users" component={Users}>
      <Route path="/user/:userId" component={User}/>
      </Route>
    <Route path="*" component={NoMatch}/>
  </Route>
</Router>

假设我在地址栏中输入了网址“/ inbox / messages /”。

我猜它首先调用“App”组件并将其合并到DOM树中。

但是怎么回事?

他们使用“this.props.children”属性。

const App = React.createClass({
  render() {
    return (
      <div>
        <h1>App</h1>
        <ul>
          <li><Link to="/about">About</Link></li>
          <li><Link to="/inbox">Inbox</Link></li>
        </ul>
        {this.props.children}
      </div>
    )
  }
})

但“App”有几个孩子。正确?

它如何决定接下来必须包含哪些内容? 该算法如何运作?

1 个答案:

答案 0 :(得分:1)

就反应路由器文档说的url匹配而言,他们使用DFS(深度优先搜索)你可以找到它react-router Algorithm。 你可以找到有关DFS here

的信息