Comments (4)
Hi @notramo I am not sure I understand the issue. What loading screen?
from svelte-spa-router.
I'm also looking for the same functionality @notramo describes (correct me if I'm wrong). My component is expecting some data to be loaded and passed via props
and that way I can avoid UI loading glitches easily.
It'd be nice if the options.props
of the route accepts functions (async too) and waits until all the functions are resolved.
Also it'd be nice for the function to receive the same detail
as the events.
Something like:
<!-- App.svelte -->
<script>
import Router from 'svelte-spa-router';
import wrap from "svelte-spa-router/wrap.js";
import Loading from './Loading.svelte';
import Product from './Product.svelte';
async function sleep(time) {
return await new Promise(res => setTimeout(res, time));
}
function logEvent(event) {
console.log(event.type, event.detail);
}
let routes = {
"/product/:id": wrap({
component: Product,
loadingComponent: Loading,
conditions: [
async (detail) => {
console.log("condition1", detail);
await sleep(1000); // fake delay
return true;
}
],
props: {
product: async (detail) => {
console.log("Loading product", detail);
await sleep(1000); // fake delay
return {
name: `Product ${detail?.params?.id}`
}
}
}
})
}
</script>
<Router {routes}
on:conditionsFailed={logEvent}
on:routeLoading={logEvent}
on:routeLoaded={logEvent}
/>
<!-- Loading.svelte -->
<div>Loading ...</div>
<!-- Product.svelte -->
<script>
export let product = {};
</script>
<div>Name: {product.name}</div>
from svelte-spa-router.
I implemented the functionality in 5 lines but then I found there is a discussion already in #283. I'll review the other PR.
from svelte-spa-router.
Hi @notramo I am not sure I understand the issue. What loading screen?
The one that is currently shown while the asyncComponent
is loading.
The solution proposed by @jh12z seems OK, but I'm not sure about how it handles changing route properties.
E.g. if I visit /items/1
then change the URL to /items/2
, does it reload the item from the API?
from svelte-spa-router.
Related Issues (20)
- In vite, i can't use the proxy /dev HOT 1
- Redirection from route pre-condition HOT 5
- Nested routes as maps HOT 1
- If I want to go to the login page in the sidebar + SPA form, is it possible with route guard? HOT 4
- Is this not possible in routeLoaded? HOT 5
- What is the black bar in this image? HOT 2
- Feature request: Svelte 4 support HOT 13
- FEATURE REQUEST: pass next() in precondition to decide whether the router should *change* the current route HOT 1
- How to check hash-bashed history HOT 1
- Is there an alternative to the "Failed to fetch dynamically import problem" issue in Vite + Svelte spa environment? HOT 1
- WARNING: The following packages have a svelte field in their package.json but no exports condition for svelte. [email protected] HOT 8
- Typescript problematic types after "wrapping" the route HOT 2
- navigating within same component does not work HOT 5
- Typescript support: Package path ./wrap is not exported from package svelte-spa-router HOT 2
- Will the library support Svelte 5? HOT 5
- Authentication and Authorization HOT 6
- Layouts not exists for svelte-spa-router? HOT 6
- Feature request: Nested route priority HOT 1
- children router bug HOT 2
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 svelte-spa-router.