a less tehcnical explanation:

  1. route helps to build routes. creating a route one time is enough. for example:
    <route exact path="/articles"> <articles /> </route>

means that "/articles" route is created and you do not have to create it again in other components. that's why generally route goes inside the main component, which is generally "app".

  1. because of the first reason above, you will then need to use a linking tag in other components if you want to visit "/articles". if we use "a" tag, it will make the browser to send a fresh whole new html page. and this is what we do not want because we want only some parts (aka "component") of webpage to change, not all page.


in layman's terms we could understand the difference as mentioned below:

a)routes are responsible for rendering ui when its path matches current url where as links are similar to anchor tags in html which are used to access the route paths.

b) routes involve components within it where as links involve just the path which is already defined by the routes

c) routes are independent entities where as links are dependent on routes.


i will explain by an example, if i have:

        <route path = "/" component = {loginmodule} />
        <route path = "/register" component = {registermodule}/>

here if i go to url localhost:3000, it will render the login module. no doubt in that.

but if i go to url localhost:3000/register, it will render both login and register module below the login module on the same page. it is because /register also has '/' in it.

this can be solved by:

        <route exact = {true} path = "/" component = {loginmodule} />
        <route path = "/register" component = {registermodule}/>


link and route

<link/> is the element you could use to navigate through routes.

<route/>, its most basic responsibility is to render some ui when a location matches the route’s path.

they are used separately. link is dependent to route's locations. but route can be used without link.

react router:

react js tutorial:


the route and link components are meant to be used together to accomplish different tasks in the application. firstly, the react router library is intended to achieve two things: 1. ensures that state transitions are captured in the url bar. 2. ensures that the application starts from a proper state when the visited through a stateful url address.

role of link component the link component is a way to transition route state in the application. so if you click a link component, a route state will be activated. for example:

<link to="/example" />

will register that the application is in the '/example' state. at this point, it is up to the component to render the appropriate content as such.

<route path="/example" render={profile] /> 

so in a nutshell, the link component is responsible for the transition from state to state (page to page), while the route component is responsible to act as a switch to display certain components based on route state.

the best example of the library usage can be found at

Related Query

More Query from same tag