Comments (4)
I would implement it like this:
import React from 'react';
import {useRoutes} from 'hookrouter';
import LoadingPlaceholder from './LoadingPlaceholder';
const Page1 = React.lazy(() => import('./page1'));
const Page2 = React.lazy(() => import('./page2'));
const Page3 = React.lazy(() => import('./page3'));
const routes = {
'/': () => <Page1 />,
'/about': () => <Page2 />,
'/contact': () => <Page3 />
}
const MyApp = () => {
const routeResult = useRoutes(routes);
return (
<React.Suspense fallback={LoadingPlaceholder}>
{routeResult}
</React.Suspense>
);
};
Actually waiting is not in favor of the user in this case. The app would "freeze" until the next "pages" components are loaded. You should use suspense instead and actually tell the user: hey, we are loading something here.
from hookrouter.
Indeed but I was thinking of something like a loading bar that would appear within the previous route. Something like this
from hookrouter.
Well, the call to import()
returns a promise. What you could do is intercepting the navigation, show a loading bar and wait for the promise to resolve - then finalize the navigation intent.
from hookrouter.
I am having some troubles figuring out the right way of implementing it.
can you provide an example snippet ?
Well, the call to
import()
returns a promise. What you could do is intercepting the navigation, show a loading bar and wait for the promise to resolve - then finalize the navigation intent.
from hookrouter.
Related Issues (20)
- Native Typescript HOT 1
- Rendering Issue HOT 3
- BUG: query string is wiped out when navigate() is called with path only
- Direct navigation doesn't seem to work with GH Pages HOT 1
- Typescript error: index.d.ts file is missing HOT 8
- Support React 17 HOT 2
- Problem when using ListItem Material ui HOT 2
- React components using useRef hook break
- component rendering issue with react.strictmode HOT 1
- inside setLinkProps preventDefault sometimes does not stop navigation
- navigate() does not keep queryparameter even with fourth argument set to false HOT 3
- Import returning error "is not a module" when try to use hookrouter with CRA + typescript HOT 2
- TypeError: match is not a function
- Function to get the matched route outside of React (SSR)
- Navigate doesn't refresh useRoutes HOT 3
- Using Material UI Sidebar
- routing clears parent app state, how to maintain state while using this module?
- use hookrouter with react-redux
- Mark repo as archived if no longer updating 😄 HOT 3
- Application won't deploy on Heroku due to hookrouter HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from hookrouter.