【问题标题】:How to handle data in direct children routes如何处理直接子路由中的数据
【发布时间】:2025-12-19 19:21:30
【问题描述】:

我是 React 和单个应用程序的新手,我对这种方法有疑问。

我正在使用 React-router 4。当路由假设我有一个 ToDos 组件 (myapp.com/todos) 时,我在访问时将 ToDos 数据获取到“myapp.com/api/todos.json”之类的东西并获取待办事项列表,然后渲染每个待办事项,如果我想转到类似待办事项组件的内容,在该组件中显示待办事项详细信息将是类似“todos/:todoid”的路线,那么我使用 a 并转到待办事项详细信息,这样就可以了很好,但是当用户直接访问“todos/1”时会发生什么?我应该从与该特定待办事项对应的服务器获取数据吗?像“myapp.com/api/todos/1.json”这样的东西?还是我应该加载 ToDo 组件并获取所有的 todo ?

这很重要,因为我必须在服务器上渲染路线并将一些道具传递给路线,例如打开的图形标签。

任何建议或教程或课程将不胜感激。提前致谢!

【问题讨论】:

    标签: javascript facebook reactjs express react-router-v4


    【解决方案1】:

    你不需要服务端渲染,当用户直接打开'todos/1',然后渲染ToDo-detail组件并使用onComponentDidMount来获取('api/todos/1')。

    【讨论】:

    • 我必须使用服务器端渲染,因为我需要渲染打开的图形标签(和其他一些 SEO 道具),否则像 Facebook 这样的爬虫不会获取元数据,所以我不能使用onComponentDidMount 获取数据