Hi Prachi,
Visualforce and Lightning both offer ways to design and create custom interfaces for Salesforce.
Visualforce was designed to follow a Page-Centric model. This means that the intent of Visualforce was to create something that was your full page interface with Salesforce. When the user needed to perform some kind of operation, like Save a record, it would send that request to the Salesforce servers and then reload the entire page with the new state of the UI. All backend processing is done with Apex Code on the Server-Side. You have the option to inject JavaScript into the mix to handle some of the Client-Side processing, but it isn't the default interaction methodology.
Lightning was designed to follow an App-Centric model. This essentially means that it has been designed to create self-contained components that build on top of each other.
"To put this in perspective, with Visualforce you would send an interaction to the Salesforce server and then update the entire page". However, with Lightning, you can send an interaction to the Salesforce servers and then update a specific component.
This has huge implications for performance and for the fluid motion of a UI.
This allows us to design UIs that are inherently responsive to the user interactions, meaning we update the things the user is interacting with and everything else remains untouched.
Thanks.