前后端api
http api和请求fetch
在前面介绍,也说到过可以使用koa-cola定义的api基类来创建自己的api类,并使用api的fetch方法获取数据:
1 2
| const api = new GetTodoList({}); const data = await api.fetch(helpers.ctx);
|
上面代码可以兼容服务器端和客户端,ajax库使用了axios,比如 todolist demo 有个react组件定义:
1 2 3 4 5 6 7 8 9 10 11 12 13
| @Cola({ initData : { todosData : async ({ params, helpers, store: { dispatch } }) => { const api = new GetTodoList({}); const data = await api.fetch(helpers.ctx); return data.result.result; } } }) class Page extends React.Component<Props, States> { ... } export default Page;
|
如果该组件的路由是服务器端直接渲染,则api.fetch
会在服务器端调用,如果该组件是在浏览器端的<Link>
跳转,则api.fetch
会在浏览器端调用。