Code Monkey home page Code Monkey logo

Comments (4)

ItalyPaleAle avatar ItalyPaleAle commented on July 17, 2024 1

This (listening on the $location store) is definitely a way. Another way (which might be better if you want to listen to changes on $querystring too) is to use the “routeLoaded” event and place the timeout on the callback.

As for opening a PR, why do you think this would be best in the router rather than in the users’ code? What problem are you trying to solve that would be best implemented in the router? As you know, I’m trying to keep the router lean and implement in there only things that can’t be done in any other way.

from svelte-spa-router.

hmmhmmhm avatar hmmhmmhm commented on July 17, 2024

스크린샷 2019-11-19 오후 3 24 58

Is it okay if I send a PR to embed these functions into the library?

from svelte-spa-router.

hmmhmmhm avatar hmmhmmhm commented on July 17, 2024

I think it's better to provide some of the functions involved in the task that work uniquely on each page. Isn't convenience the most important thing? (like a svelte?) If you don't like the idea of embedding this feature in the module, I think it's okay to just put it in my svelte-spa-chunk.

from svelte-spa-router.

ItalyPaleAle avatar ItalyPaleAle commented on July 17, 2024

svelte-spa-router is meant to be included in many different apps and, since it's front-end code, every bit of it gets shipped to clients. It's very important that we keep this lean and minimal, for speed, maintainability, reliability and security.

My "litmus test" for deciding on what goes in the router is that things get included if all these are true:

  1. If it's not possible (or much more inconvenient) to achieve the same result if the code isn't part of the router itself
  2. If it's a feature that would benefit a significant number of user.
  3. The APIs are generic enough and not overly complicated

I'm afraid a PR like this would violate the condition 1, as it could be implemented in the app's code with just few lines of code:

<Router on:routeLoaded={routeLoaded} />
<script>
import { onDestroy } from 'svelte'
let interval = null
function routeLoaded(event) {
    if (interval) clearInterval(interval)
    interval = setInterval(something, 1000)
}
onDestroy(() => clearInterval(interval))
</script>

I'm also not sure about condition 2, as it seems something very specific to one use case

from svelte-spa-router.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.