Question: I want to get my data from server in the component where the data is needed.
(call api at `mounted` or `beforemounted` or `created` (component lifecycle loop))

If I followed the rule above, it is inevitable to call same multiple REST api at same page.

I tried to cache them but it is quite difficult to handle the REST api result.
( Because the result of REST api depends on to params and it also depends on to time....)

I know that nuxt provide fetch and async but getting all data at page level looks bad.

Is there any good strategy for call api efficiently? I think this kinds of concern is not restricted to nuxt or vue, it also happens in react, angualr like component based framework...

Answer: 
If you want an SSR page than you can make API requests in the asyncData method inside pages or if you want to make API requests on client-side than you can go for mounted method.

And for state management/managing data in component/across component can be achieved via VueX
You can use `nuxtServerInit` to store in `vuex`

Check out the [documentation](https://nuxtjs.org/guide/vuex-store/#the-nuxtserverinit-action)