# code-splitting

Published articles for code-splitting.

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## React Router 7 Lazy Loading

DevFeed: [React Router 7 Lazy Loading](<https://devfeed.tech/articles/react-router-7-lazy-loading-18969.md>)

Original publisher: [Read original article](<https://www.robinwieruch.de/react-router-lazy-loading/>)

Author: Robin Wieruch

Published: 2025-01-06T05:52:51Z

Content type: tutorial

Language: en

Sources: [Robin Wieruch](<https://devfeed.tech/sources/robin-wieruch.md>)

Topics: [React Router](<https://devfeed.tech/topics/react-router.md>), [Tutorial](<https://devfeed.tech/topics/tutorial.md>), [React](<https://devfeed.tech/topics/react.md>), [Optimization](<https://devfeed.tech/topics/optimization.md>)

Tags: [code-splitting](<https://devfeed.tech/tags/code-splitting.md>), [lazy-loading](<https://devfeed.tech/tags/lazy-loading.md>), [performance](<https://devfeed.tech/tags/performance.md>), [react](<https://devfeed.tech/tags/react.md>), [react-router](<https://devfeed.tech/tags/react-router.md>), [react-router-7](<https://devfeed.tech/tags/react-router-7.md>), [react-router-lazy-loading](<https://devfeed.tech/tags/react-router-lazy-loading.md>), [react-router-tutorial](<https://devfeed.tech/tags/react-router-tutorial.md>), [tutorial](<https://devfeed.tech/tags/tutorial.md>)

### AI overview

This tutorial explains route-level lazy loading with React Router 7. It shows how splitting an application into smaller bundles can load only the code needed for a visited route, and demonstrates React.lazy, React Suspense, and @loadable/component.

### Source excerpt

How to: React Router 7 Lazy Loading: code-splitting at route level helps you lazy-load just the things that are needed by the user, which dramatically improves the performance ...

## Infinite scroll with Next.js, Framer Motion, and Supabase

DevFeed: [Infinite scroll with Next.js, Framer Motion, and Supabase](<https://devfeed.tech/articles/infinite-scroll-with-next-js-framer-motion-and-supabase-403.md>)

Original publisher: [Read original article](<https://supabase.com/blog/infinite-scroll-with-nextjs-framer-motion>)

Author: Francesco Sansalvadore

Published: 2023-04-04T07:00:00Z

Content type: tutorial

Language: en

Sources: [Supabase Blog](<https://devfeed.tech/sources/supabase-blog.md>)

Topics: [infinite scroll](<https://devfeed.tech/topics/infinite-scroll.md>), [Next.js](<https://devfeed.tech/topics/next-js.md>), [Supabase](<https://devfeed.tech/topics/supabase.md>), [Framer Motion](<https://devfeed.tech/topics/framer-motion.md>), [web design](<https://devfeed.tech/topics/web-design.md>), [Server-side rendering](<https://devfeed.tech/topics/server-side-rendering.md>), [Caching](<https://devfeed.tech/topics/caching.md>)

Tags: [cache](<https://devfeed.tech/tags/cache.md>), [code-splitting](<https://devfeed.tech/tags/code-splitting.md>), [data](<https://devfeed.tech/tags/data.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [infinite-scroll](<https://devfeed.tech/tags/infinite-scroll.md>), [next-js](<https://devfeed.tech/tags/next-js.md>), [performance](<https://devfeed.tech/tags/performance.md>), [server-side-rendering](<https://devfeed.tech/tags/server-side-rendering.md>), [user-experience](<https://devfeed.tech/tags/user-experience.md>), [web-design](<https://devfeed.tech/tags/web-design.md>)

### AI overview

A tutorial on implementing infinite scrolling with Next.js, Supabase, and Framer Motion. It explains lazy loading ticket data in batches as the user scrolls, with techniques such as server-side rendering, code splitting, caching, prefetching, and debouncing to improve performance and user experience.

### Source excerpt

Lazy load and paginate data on scroll with Next.js and a sprinkle of Framer Motion magic ✨

## Optimising BBC Online's Code Splitting Strategy

DevFeed: [Optimising BBC Online's Code Splitting Strategy](<https://devfeed.tech/articles/optimising-bbc-online-s-code-splitting-strategy-19174.md>)

Original publisher: [Read original article](<https://medium.com/bbc-product-technology/optimising-bbc-onlines-code-splitting-strategy-eb17172dea44?source=rss----ccd524e1760a---4>)

Author: Matt Williams

Published: 2022-05-30T15:21:09Z

Content type: article

Language: en

Sources: [BBC](<https://devfeed.tech/sources/bbc.md>)

Topics: [JavaScript](<https://devfeed.tech/topics/javascript.md>), [Code](<https://devfeed.tech/topics/code.md>), [Website](<https://devfeed.tech/topics/website.md>), [modern web development](<https://devfeed.tech/topics/modern-web-development.md>)

Tags: [code](<https://devfeed.tech/tags/code.md>), [code-splitting](<https://devfeed.tech/tags/code-splitting.md>), [frameworks](<https://devfeed.tech/tags/frameworks.md>), [javascript](<https://devfeed.tech/tags/javascript.md>), [performance](<https://devfeed.tech/tags/performance.md>), [react](<https://devfeed.tech/tags/react.md>), [webpack](<https://devfeed.tech/tags/webpack.md>), [website](<https://devfeed.tech/tags/website.md>)

### AI overview

This article explains BBC Online's code-splitting strategy for a large JavaScript website. It describes how splitting code into separate files can support parallel downloads and limit page-specific code to the pages that need it, while noting that excessive fragmentation can cause problems. The article says BBC Online's Presentation Layer had outgrown its existing strategy and introduces its use of shared core bundles.

### Source excerpt

Photo by Sen on Unsplash Modern JavaScript websites are the result of complex code bases, and the code base which powers BBC Online is no exception. There are many dependencies and frameworks that we rely upon in order to provide the functionality that our end-users expect, as well as code written in-house to cater to the needs of our website and its users; being able to click a button to follow a topic, search for content and play videos all require JavaScript code to be run by the browser. For a website as large and with as many seemingly disparate needs as the BBC's various pages, the amount of code required can grow exponentially. The code needed to render a news article - with images, social media embeds, videos and onward journeys - has only small elements of commonality with the code required to power complex sports data tables - with team badges, functionality to hide or show columns based on the screen width of the user's device, display a team's form, or provide live in-page updates for events that are happening live. As such, it has long been the practice of the JavaScript community to implement code splitting. Rather than providing all of our JavaScript and dependencies into a single large file to be downloaded by the user, we can split our code into separate files. This can provide advantages on two fronts; downloading multiple smaller files can be more efficient when devices can start those downloads in parallel (though going too far and downloading too many small files can cause problems itself!), and the way that we choose to split our files can mean that some only need to be downloaded on certain pages. It is this second benefit which can be most powerful; if you have a large piece of code on your site that is only needed for a single page, then forcing users to download that code on every page is wasteful, and can cause problems for users who might have limits on the amount of data they can download on their network. We have been using code splitti

## What's the deal with SvelteKit?

DevFeed: [What's the deal with SvelteKit?](<https://devfeed.tech/articles/what-s-the-deal-with-sveltekit-3128.md>)

Original publisher: [Read original article](<https://svelte.dev/blog/whats-the-deal-with-sveltekit>)

Author: Rich Harris

Published: 2020-11-05T00:00:00Z

Content type: article

Language: en

Sources: [Svelte blog](<https://devfeed.tech/sources/svelte-blog.md>)

Topics: [Svelte](<https://devfeed.tech/topics/svelte.md>), [Framework](<https://devfeed.tech/topics/framework.md>), [Development](<https://devfeed.tech/topics/development.md>), [Web Development](<https://devfeed.tech/topics/web-development.md>), [Server-side rendering](<https://devfeed.tech/topics/server-side-rendering.md>), [Routing (disambiguation)](<https://devfeed.tech/topics/routing.md>), [Template](<https://devfeed.tech/topics/template.md>), [web applications](<https://devfeed.tech/topics/web-applications.md>), [Webpack](<https://devfeed.tech/topics/webpack.md>)

Tags: [code-splitting](<https://devfeed.tech/tags/code-splitting.md>), [development](<https://devfeed.tech/tags/development.md>), [framework](<https://devfeed.tech/tags/framework.md>), [maintenance](<https://devfeed.tech/tags/maintenance.md>), [onboarding](<https://devfeed.tech/tags/onboarding.md>), [project](<https://devfeed.tech/tags/project.md>), [routing](<https://devfeed.tech/tags/routing.md>), [server-side-rendering](<https://devfeed.tech/tags/server-side-rendering.md>), [ssr](<https://devfeed.tech/tags/ssr.md>), [support](<https://devfeed.tech/tags/support.md>), [svelte](<https://devfeed.tech/tags/svelte.md>), [webpack](<https://devfeed.tech/tags/webpack.md>)

### AI overview

This article explains that Sapper will not reach version 1.0 because its successor, SvelteKit, is effectively a rewrite and rebrand. It describes Sapper as a Svelte-based app framework that supports server-side rendering, code-splitting, filesystem-based routing, and a productive project structure, then outlines migration motivations including simpler onboarding, lower maintenance and support burden, and reconsideration of module-bundling assumptions.

### Source excerpt

If you didn't attend Svelte Summit, you can catch up on the Svelte Society YouTube page If you attended Svelte Summit last month you may have seen my talk, Futuristic Web Development, in which I finally tackled one of the most frequently asked questions about Svelte: when will Sapper reach version 1.0? The answer: never. This was slightly tongue-in-cheek -- as the talk explains, it's really more of a rewrite of Sapper coupled with a rebrand -- but it raised a lot of new questions from the community, and it's time we offered a bit more clarity on what you can expect from Sapper's successor, SvelteKit. 'Futuristic Web Development' from Svelte Summit What's Sapper? Sapper is an app framework (or 'metaframework') built on top of Svelte (which is a component framework). Its job is to make it easy to build Svelte apps with all the modern best practices like server-side rendering (SSR) and code-splitting, and to provide a project structure that makes development productive and fun. It uses filesystem-based routing (as popularised by Next and adopted by many other frameworks, albeit with some enhancements) -- your project's file structure mirrors the structure of the app itself. While the Svelte homepage and documentation encourages you to degit the sveltejs/template repo to start building an app, Sapper has long been our recommended way to build apps; this very blog post is (at the time of writing!) rendered with Sapper. Why are we migrating to something new? Firstly, the distinction between sveltejs/template and sveltejs/sapper-template is confusing, particularly to newcomers to Svelte. Having a single recommended way to start building apps with Svelte will bring enormous benefits: we simplify onboarding, reduce the maintenance and support burden, and can potentially begin to explore the new possibilities that are unlocked by having a predictable project structure. (This last part is deliberately vague because it will take time to fully understand what those possibilities ar

## Next.js 10

DevFeed: [Next.js 10](<https://devfeed.tech/articles/next-js-10-3159.md>)

Original publisher: [Read original article](<https://nextjs.org/blog/next-10>)

Author: Tim Neutkens

Published: 2020-10-27T14:00:00Z

Content type: release

Language: en

Sources: [Next.js Blog](<https://devfeed.tech/sources/next-js-blog.md>)

Topics: [Next.js](<https://devfeed.tech/topics/next-js.md>), [Optimization](<https://devfeed.tech/topics/optimization.md>), [Routing (disambiguation)](<https://devfeed.tech/topics/routing.md>), [React](<https://devfeed.tech/topics/react.md>)

Tags: [code-splitting](<https://devfeed.tech/tags/code-splitting.md>), [image](<https://devfeed.tech/tags/image.md>), [javascript](<https://devfeed.tech/tags/javascript.md>), [next-js](<https://devfeed.tech/tags/next-js.md>), [optimization](<https://devfeed.tech/tags/optimization.md>), [performance](<https://devfeed.tech/tags/performance.md>), [react](<https://devfeed.tech/tags/react.md>), [routing](<https://devfeed.tech/tags/routing.md>), [user-experience](<https://devfeed.tech/tags/user-experience.md>)

### AI overview

Next.js 10 introduces built-in image optimization, internationalized routing, analytics, React 17 support, Fast Refresh improvements, third-party CSS imports, easier codemod access through the CLI, and blocking fallbacks for static generation. The release also highlights reduced JavaScript payloads and performance improvements for Next.js applications.

### Source excerpt

Next.js 10 introduces Built-in Image Optimization, Internationalized Routing, Next.js Analytics, React 17 Support, and more!

## Next.js 9.2

DevFeed: [Next.js 9.2](<https://devfeed.tech/articles/next-js-9-2-3258.md>)

Original publisher: [Read original article](<https://nextjs.org/blog/next-9-2>)

Author: Tim Neutkens

Published: 2020-01-15T19:37:43Z

Content type: release

Language: en

Sources: [Next.js Blog](<https://devfeed.tech/sources/next-js-blog.md>)

Topics: [Next.js](<https://devfeed.tech/topics/next-js.md>), [CSS](<https://devfeed.tech/topics/css.md>), [Web Development](<https://devfeed.tech/topics/web-development.md>), [web applications](<https://devfeed.tech/topics/web-applications.md>)

Tags: [code-splitting](<https://devfeed.tech/tags/code-splitting.md>), [css](<https://devfeed.tech/tags/css.md>), [development](<https://devfeed.tech/tags/development.md>), [next-js](<https://devfeed.tech/tags/next-js.md>), [performance](<https://devfeed.tech/tags/performance.md>)

### AI overview

Next.js 9.2 adds native global CSS and CSS Module support, improves code splitting and HTTP/2 page-load performance, and introduces catch-all dynamic routes. The release is non-breaking and backward compatible.

### Source excerpt

Next.js 9.2 introduces native support for CSS, aggressive code-splitting, catch-all dynamic routes, and more!

## Cascading Cache Invalidation

DevFeed: [Cascading Cache Invalidation](<https://devfeed.tech/articles/cascading-cache-invalidation-29492.md>)

Original publisher: [Read original article](<https://philipwalton.com/articles/cascading-cache-invalidation/>)

Published: 2019-10-09T08:26:44Z

Content type: article

Language: en

Sources: [Philip Walton](<https://devfeed.tech/sources/philip-walton.md>)

Topics: [Caching](<https://devfeed.tech/topics/caching.md>), [JavaScript](<https://devfeed.tech/topics/javascript.md>), [Web Development](<https://devfeed.tech/topics/web-development.md>)

Tags: [cache](<https://devfeed.tech/tags/cache.md>), [caching](<https://devfeed.tech/tags/caching.md>), [code-splitting](<https://devfeed.tech/tags/code-splitting.md>), [dependencies](<https://devfeed.tech/tags/dependencies.md>), [hash](<https://devfeed.tech/tags/hash.md>), [javascript](<https://devfeed.tech/tags/javascript.md>), [production](<https://devfeed.tech/tags/production.md>)

### AI overview

The article examines how revision-hashed JavaScript filenames interact with code splitting and dependency imports. It finds that changing a vendor chunk can alter its filename, forcing importing chunks to change as well and reducing the effectiveness of long-term caching.

### Source excerpt

For several years now, pretty much every article published on caching best practices has recommended the following two things for deploying JavaScript code in production: Add revision information to the filenames of your assets (usually content hashes)

## Manually Lazy Load an Angular Module with ViewEngine and Ivy

DevFeed: [Manually Lazy Load an Angular Module with ViewEngine and Ivy](<https://devfeed.tech/articles/manually-lazy-load-an-angular-module-with-viewengine-and-ivy-21360.md>)

Original publisher: [Read original article](<https://juri.dev/blog/2019/10/lazyload-module-ivy-viewengine/>)

Published: 2019-09-30T00:00:00Z

Content type: tutorial

Language: en

Sources: [Juri Strumpflohner](<https://devfeed.tech/sources/juri-strumpflohner.md>)

Topics: [Angular](<https://devfeed.tech/topics/angular.md>), [Command-line interface](<https://devfeed.tech/topics/cli.md>), [Webpack](<https://devfeed.tech/topics/webpack.md>)

Tags: [angular](<https://devfeed.tech/tags/angular.md>), [code-splitting](<https://devfeed.tech/tags/code-splitting.md>), [lazy-loading](<https://devfeed.tech/tags/lazy-loading.md>), [webpack](<https://devfeed.tech/tags/webpack.md>)

### AI overview

A tutorial on manually lazy-loading an Angular module in a way compatible with ViewEngine and Ivy. It explains Angular's router-based lazy loading, CLI and Webpack code splitting, dynamic loading syntax, and module instantiation.

### Source excerpt

Lorem ipsum dolor sit amet

## Angular Performance: Performance budgets with the Angular CLI

DevFeed: [Angular Performance: Performance budgets with the Angular CLI](<https://devfeed.tech/articles/angular-performance-performance-budgets-with-the-angular-cli-21355.md>)

Original publisher: [Read original article](<https://juri.dev/blog/2019/08/ngperf-setting-performance-budgets/>)

Published: 2019-08-28T00:00:00Z

Content type: tutorial

Language: en

Sources: [Juri Strumpflohner](<https://devfeed.tech/sources/juri-strumpflohner.md>)

Topics: [Angular](<https://devfeed.tech/topics/angular.md>), [Angular CLI](<https://devfeed.tech/topics/angular-cli.md>), [Command-line interface](<https://devfeed.tech/topics/cli.md>)

Tags: [angular](<https://devfeed.tech/tags/angular.md>), [cli](<https://devfeed.tech/tags/cli.md>), [code-splitting](<https://devfeed.tech/tags/code-splitting.md>), [performance](<https://devfeed.tech/tags/performance.md>), [videos](<https://devfeed.tech/tags/videos.md>)

### AI overview

This article explains how to define performance budgets with the Angular CLI, configure limits on metrics that affect an app's performance, monitor those budgets, and receive alerts when they are violated.

### Source excerpt

Lorem ipsum dolor sit amet

## Angular Performance: Preloading Lazy Routes

DevFeed: [Angular Performance: Preloading Lazy Routes](<https://devfeed.tech/articles/angular-performance-preloading-lazy-routes-21353.md>)

Original publisher: [Read original article](<https://juri.dev/blog/2019/08/ngperf-preloading-lazy-routes/>)

Published: 2019-08-27T00:00:00Z

Content type: tutorial

Language: en

Sources: [Juri Strumpflohner](<https://devfeed.tech/sources/juri-strumpflohner.md>)

Topics: [Angular](<https://devfeed.tech/topics/angular.md>), [Angular CLI](<https://devfeed.tech/topics/angular-cli.md>), [Development](<https://devfeed.tech/topics/development.md>)

Tags: [angular](<https://devfeed.tech/tags/angular.md>), [code-splitting](<https://devfeed.tech/tags/code-splitting.md>), [lazy-loading](<https://devfeed.tech/tags/lazy-loading.md>), [library](<https://devfeed.tech/tags/library.md>), [modules](<https://devfeed.tech/tags/modules.md>), [performance](<https://devfeed.tech/tags/performance.md>), [route](<https://devfeed.tech/tags/route.md>), [videos](<https://devfeed.tech/tags/videos.md>)

### AI overview

A tutorial on preloading lazy routes in Angular. It covers preloading all lazy modules, defining a custom preloading strategy, and using ngx-quicklink to automatically load visible links.

### Source excerpt

Lorem ipsum dolor sit amet

## Angular Performance: Route Level Code Splitting

DevFeed: [Angular Performance: Route Level Code Splitting](<https://devfeed.tech/articles/angular-performance-route-level-code-splitting-21354.md>)

Original publisher: [Read original article](<https://juri.dev/blog/2019/08/ngperf-route-level-code-splitting/>)

Published: 2019-08-26T00:00:00Z

Content type: tutorial

Language: en

Sources: [Juri Strumpflohner](<https://devfeed.tech/sources/juri-strumpflohner.md>)

Topics: [Angular](<https://devfeed.tech/topics/angular.md>), [Code](<https://devfeed.tech/topics/code.md>), [Development](<https://devfeed.tech/topics/development.md>), [Web](<https://devfeed.tech/topics/web.md>)

Tags: [angular](<https://devfeed.tech/tags/angular.md>), [cli](<https://devfeed.tech/tags/cli.md>), [code](<https://devfeed.tech/tags/code.md>), [code-splitting](<https://devfeed.tech/tags/code-splitting.md>), [generate](<https://devfeed.tech/tags/generate.md>), [implement](<https://devfeed.tech/tags/implement.md>), [lazy-loading](<https://devfeed.tech/tags/lazy-loading.md>), [load](<https://devfeed.tech/tags/load.md>), [metric](<https://devfeed.tech/tags/metric.md>), [performance](<https://devfeed.tech/tags/performance.md>), [route](<https://devfeed.tech/tags/route.md>), [time-to-interactive](<https://devfeed.tech/tags/time-to-interactive.md>), [videos](<https://devfeed.tech/tags/videos.md>)

### AI overview

This tutorial explains route-level code splitting and lazy loading in Angular. It connects loading only the minimum necessary application code to improving time to interactive, and mentions generating lazy routes with the Angular CLI.

### Source excerpt

Lorem ipsum dolor sit amet

## Angular Version 8: New Features, Ivy, and Migration Considerations

DevFeed: [Angular Version 8: New Features, Ivy, and Migration Considerations](<https://devfeed.tech/articles/update-to-angular-version-8-now-21347.md>)

Original publisher: [Read original article](<https://juri.dev/blog/2019/06/angular-v8/>)

Published: 2019-06-03T00:00:00Z

Content type: tutorial

Language: en

Sources: [Juri Strumpflohner](<https://devfeed.tech/sources/juri-strumpflohner.md>)

Topics: [Angular](<https://devfeed.tech/topics/angular.md>), [browser](<https://devfeed.tech/topics/browser.md>), [bazel](<https://devfeed.tech/topics/bazel.md>), [Deployment](<https://devfeed.tech/topics/deployment.md>), [Tooling](<https://devfeed.tech/topics/tooling.md>)

Tags: [angular](<https://devfeed.tech/tags/angular.md>), [build](<https://devfeed.tech/tags/build.md>), [build-system](<https://devfeed.tech/tags/build-system.md>), [code-splitting](<https://devfeed.tech/tags/code-splitting.md>), [import](<https://devfeed.tech/tags/import.md>), [parallel](<https://devfeed.tech/tags/parallel.md>), [release](<https://devfeed.tech/tags/release.md>), [tooling](<https://devfeed.tech/tags/tooling.md>), [v8](<https://devfeed.tech/tags/v8.md>)

### AI overview

This tutorial reviews Angular 8's major changes, including differential loading, stabilized builders, automated deployment integrations, web workers, service worker improvements, code splitting, AngularJS integration, and improved IDE support. It explains that Ivy is included but not enabled by default and can be enabled experimentally.

### Source excerpt

Lorem ipsum dolor sit amet

## React Router & Webpack in Production

DevFeed: [React Router & Webpack in Production](<https://devfeed.tech/articles/react-router-webpack-in-production-21870.md>)

Original publisher: [Read original article](<https://reactjsnews.com/webpack-in-production>)

Author: Zach Silveira

Published: 2016-03-13T04:00:09Z

Content type: article

Language: en

Sources: [ReactJS News](<https://devfeed.tech/sources/reactjs-news.md>)

Topics: [React Router](<https://devfeed.tech/topics/react-router.md>), [Webpack](<https://devfeed.tech/topics/webpack.md>), [Development](<https://devfeed.tech/topics/development.md>), [Code](<https://devfeed.tech/topics/code.md>), [API](<https://devfeed.tech/topics/api.md>)

Tags: [api](<https://devfeed.tech/tags/api.md>), [code-splitting](<https://devfeed.tech/tags/code-splitting.md>), [polyfill](<https://devfeed.tech/tags/polyfill.md>), [react](<https://devfeed.tech/tags/react.md>), [react-router](<https://devfeed.tech/tags/react-router.md>), [webpack](<https://devfeed.tech/tags/webpack.md>)

### AI overview

A practical account of using React Router and Webpack in production for a large application with many routes and code splits. It explains the client-side setup, route organization, asynchronous data loading, server rendering, and differences between server and client builds.

### Source excerpt

I've been working on a pretty large react-router codebase at work. Currently it has around 50~ code splits, which as you can imagine, is a lot of routes. This is going to be a post on the things I've learned throughout building out my development / production config and how we are using webpack in production. ###Initial Setup Before I really dive into how my webpack config is setup and the problems I've found, I'll quickly go over how this app is setup. Currently, there's one entry point and it looks like this: import React from 'react' import { render } from 'react-dom' import { match, Router, browserHistory } from 'react-router' import AsyncProps from 'async-props' import routes from '../routes/index' /* globals document, window */ const { pathname, search, hash } = window.location const location = `${pathname}${search}${hash}` match({ routes, location }, () => { render( <Router render={props => <AsyncProps {...props}/>} routes={routes} history={browserHistory} />, document.getElementById('app') ) }) It looks like a standard react-router setup, except a couple things are different. For one, there's way too many routes to have them all in this file, so we are importing the main route object into this file. Second, we are using match on the client side. Without matching first, the client side would try to render before the splits were downloaded causing an error. You can read a little more about match on the client here. Next, we are using Ryan Florence's awesome async-props library for loading data into components. It allows me to load data from an api before the server renders components. It will pass the data down to the client for the client-side render, and then data will load as you navigate to new pages automatically. ###Routes Our main routes file looks like this: export default { component: 'div', path: '/', indexRoute: require('./index'), childRoutes: [ require('./login'), require('./account'), ... ] } There's a lot more require's in our app of course. And

## Boot your ajax app: Creating a splash screen with NProgress

DevFeed: [Boot your ajax app: Creating a splash screen with NProgress](<https://devfeed.tech/articles/boot-your-ajax-app-creating-a-splash-screen-with-nprogress-21208.md>)

Original publisher: [Read original article](<https://juri.dev/blog/2013/12/nprogress-splash-screen/>)

Published: 2013-12-05T00:00:00Z

Content type: tutorial

Language: en

Sources: [Juri Strumpflohner](<https://devfeed.tech/sources/juri-strumpflohner.md>)

Topics: [Single-page application (SPA)](<https://devfeed.tech/topics/spa.md>), [JavaScript](<https://devfeed.tech/topics/javascript.md>), [Ajax](<https://devfeed.tech/topics/ajax.md>), [Document Object Model (DOM)](<https://devfeed.tech/topics/dom.md>), [Caching](<https://devfeed.tech/topics/caching.md>), [Web Development](<https://devfeed.tech/topics/web-development.md>)

Tags: [app](<https://devfeed.tech/tags/app.md>), [caching](<https://devfeed.tech/tags/caching.md>), [code-splitting](<https://devfeed.tech/tags/code-splitting.md>), [javascript](<https://devfeed.tech/tags/javascript.md>), [lazy-loading](<https://devfeed.tech/tags/lazy-loading.md>), [screen](<https://devfeed.tech/tags/screen.md>), [splash-screen](<https://devfeed.tech/tags/splash-screen.md>), [user-experience](<https://devfeed.tech/tags/user-experience.md>)

### AI overview

This tutorial explains how to use a splash screen and NProgress while a single-page JavaScript application starts. It describes hiding the app container, showing a progress indicator, loading JavaScript, templates, and backend data, and revealing the application when loading is complete. It also cautions that optimizing startup with code splitting, lazy loading, caching, or server-side rendering is preferable to relying on progress bars.

### Source excerpt

Lorem ipsum dolor sit amet