Reactjs React路由器组件参数与子组件

Reactjs React路由器组件参数与子组件,reactjs,react-router,Reactjs,React Router,两者的区别是什么 <Switch> <Route exact path="/"> <Welcome /> </Route> </Switch> 及 这仅仅是风格的问题还是它们做了不同的事情?不同之处在于,当您使用子方法时,您可以向正在渲染的组件传递道具,而当您使用组件方法时,您只传递组件,但不能向其传递任何道具(除了通过管线渲染组件时自动传递的组件)根据: 使用组件(而不是下面的渲染或子级)时

两者的区别是什么

<Switch>
    <Route exact path="/">
        <Welcome />
    </Route>
</Switch>



这仅仅是风格的问题还是它们做了不同的事情?

不同之处在于,当您使用子方法时,您可以向正在渲染的组件传递道具,而当您使用组件方法时,您只传递组件,但不能向其传递任何道具(除了通过管线渲染组件时自动传递的组件)

根据:

使用组件(而不是下面的渲染或子级)时 路由器使用React.createElement从 给定的组件。这意味着如果您向 组件道具,您将在每次渲染时创建一个新组件 导致现有组件卸载和新组件 安装,而不仅仅是更新现有组件。使用 对于内联渲染的内联函数,请使用渲染或 儿童道具(下图)


如果我们在渲染中不使用内联函数,那么这种差异并不重要。

两者的工作原理相同……很好。子语法允许添加参数。我没有想到这一点。
<Switch>
    <Route exact path="/" component={Welcome} />
</Switch>