Routing in NextJS allows creating pages by adding files to the pages directory. It uses file system based routing where the file name determines the route. There are options like nested routes using subfolders, dynamic routes using brackets [] in file names, catch-all routes using triple brackets for multiple path segments, and navigating programmatically using the useRouter hook.