codedamn logo
codedamn

Why use Next.js with Apollo

  • Vishnupriya's profile image
    Vishnupriya
    Team codedamn
Why use Next.js with Apollo

Managing data is a huge task in today’s time and we cannot miss out on Apollo when talking about data management. Apollo is a GraphQL implementation that helps users to use different React frameworks like Next.js to maintain their data. Apollo Client, also known as just Apollo is primarily a state management client that is well equipped to manage both remote and local data with the use of GraphQL. It can be your one-stop solution for fetching, caching, and modifying the application data.

Now, figuring out how to use Apollo Client with Next.js can be a tad bit complicated but worry not, we’ve got you covered. Basically, there are three primary ways to render data in Next.js i.e. static, client-side and server- side rendering. Apollo Client is totally compatible with all three of them.

Let us proceed further and discuss more about Apollo Client and its working with Next.js in detail.

Using Apollo Client with Next.js

Before a programmer dives into designing an application using the versatile Next.js and Apollo, one must have some thorough knowledge about the API being used. For instance we can use a SpaceX API that can efficiently track all the past and future missions. It might be true that this API has some outdated data but it can work well for the demo.

After the API part is covered, you are one step closer to designing your application. Let’s go ahead by running the below command:

npx create-next-app <name-of-your-project>

Here we named the project as next.apollo but one is free to choose any name they like. After the above command, we move ahead and run the following command next:

cd next.apollo

The next thing we got to do is to finally install the Apollo Client to be able to run it and we do this by the following command:

npm install @apollo/client graphql

Now we are finally done with all the dependencies needed for the project and can start with building this application. Let’s move forward by first configuring our Apollo Client with our chosen API.

Start with opening your project with your preferred IDE and then go on to create a fresh file with the name of apollo-client.js.

Insert the code mentioned below in the new file that you created and this will lead to the creation of Apollo Client and allows to query the API on the user’s Next.js app.

import { ApolloClient, InMemoryCache } from "@apollo/client";

const client = new ApolloClient({
    uri: "https://api.spacex.land/graphql",
    cache: new InMemoryCache(),
});

export default client;

With the above setup in place, one can then proceed to build pages with 3 varied rendering method for our application.

Why should Apollo Client be used with Next.js?

There are three primary reasons for Apollo Client being an excellent choice to be used with Next.js and without further ado, let’s discuss them in detail.

  1. Efficient caching support
  2. Data fetching approach
  3. In-built loading and error states

Efficient Caching support

Apollo has spent tons of amount of time in creating an out-of-the-box caching process and Apollo has left no gaps in providing an efficient caching experience. So, if you are somebody who’s fetching data in your app while working with graphql then Apollo Client is the appropriate choice for you to mange the data.

So, as Apollo Client rightly says, Caching a graph is no easy task, but we’ve spent two years focused on solving it. Now, another benefit of using Apollo client for caching is its minimal setup. Zero configuration is needed to set up caching in your app! Isn’t that interesting.

Data fetching approach

Apollo Client uses the  useQuery hook which makes data fetching extremely declarative. When compared with other platforms, which follow a much imperative approach, Aplollo Client has an upper hand.

So, in laymen terms, the user only needs to input in Apollo the data that they need and Apollo will catch that data for them. The users don’t have to spoon feed the steps to be taken to fetch the data nor do they have to write any logic for that.

Yet again, this is a significant example of how Apollo Client speeds up the development process and makes it much efficient to work with GraphQL.

In-built loading and error states

Apollo Client features a unique React Hook called the block useQuery which helps users in providing built-in loading and error states facilities.

This might not sound that enticing for newbie developers but as you spend much time in web development, you’ll realise the importance of not implementing a logic every time and can just simply use the Hook by using the booleans it returns and then change the app rendering as and when required.

Thanks to this feature of Apollo Client, developers have to spend less time thinking about the logic behind data fetching and focus on other app development features.

Conclusion

In this blog, we managed to discuss what exactly apollo Client is, how can we use and why do we use it in the first place. Apollo Client is an extremely efficient platform with no considerable drawbacks.

We hope this blog provided you with the much needed insight about the topic.If you have any queries or suggestions do let us know in the comments.  If you are interested in learning JavaScript, do check out courses on codedamn with an in-built environment playground to learn and practice code. Join the community of codedamn and do check out other articles related to programming and development on codedamn and subscribe to our newsletter to never miss out on our new programs and updates.

 

User avatar