Giter Site home page Giter Site logo

Rendering Issue about hookrouter HOT 3 OPEN

maxnathaniel avatar maxnathaniel commented on June 8, 2024
Rendering Issue

from hookrouter.

Comments (3)

MaxMotovilov avatar MaxMotovilov commented on June 8, 2024

This does not appear to be a problem unique to hookrouter as you ultimately need the components that render your views anyway. This library is very simple and low level so if you want to have on-demand loading of views you have to provide it yourself. I am using HoC wrappers around components that render placeholder content until the component is loaded (i.e. the promise returned by the dynamic import() resolves).

And of course you don't have to have a single routes.js file; you can structure your routes any way you like. My decision to use this library rather than https://github.com/ReactTraining/react-router was based on the former's tiny footprint and simplicity. I am not prepared to pay with bundle sizes for the elaborate functionality I practically never use...

from hookrouter.

maxnathaniel avatar maxnathaniel commented on June 8, 2024

Thanks for your reply.

I am of the impression that all routers applies lazy loading such that components only gets mounted when the component is navigated to.

However, my interpretation of the comment from this article (https://blog.logrocket.com/how-react-hooks-can-replace-react-router/) is that all components are mounted even before the component is in view. Is that what you are referring to?

from hookrouter.

MaxMotovilov avatar MaxMotovilov commented on June 8, 2024

all routers applies lazy loading such t hat components only gets mounted when the component is navigated to

Lazy instantiation, maybe? Lazy loading implies the JS code is only loaded when it's needed, which would normally be outside the purview of the router library.

all components are mounted even before the component is in view

Not at all. The useRoutes() hook calls user-provided functions; it is entirely up to them to instantiate the components. And of course they will only get mounted after the render function that called useRoutes() returns its result as part of its own.

Frankly, useRoutes() is not all that different from a combination of <Switch> and <Route> in React-router, assuming you pass in a rendering function into <Route>. In both cases you simply write a function that accepts parameters describing the route and returns a React vDOM subtree (an element or a fragment, or what have you). There's little enough code in hookrouter that the quickest way to answer questions about it may be to read it... or step through with the debugger.

from hookrouter.

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.