Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Is it possible to load full components on the fly as you navigate? #180

Closed
jeffbski opened this issue Jul 19, 2016 · 5 comments
Closed

Is it possible to load full components on the fly as you navigate? #180

jeffbski opened this issue Jul 19, 2016 · 5 comments

Comments

@jeffbski
Copy link

When building large apps, sometimes it is nice to not load all possible components until they are needed, so when a user navigates to a particular route then we dynamically load the components and all their associated parts.

Does choo support the ability to dynamically load components (and their reducers, effects, and subscriptions)?

If so how is this done? Can you point to or create a good example?

@yoshuawuyts
Copy link
Member

I feel worrying about this might be slightly premature - like: please don't try and do this until you run into actual issues with dependency size.

that said: yeah you could def get some empty view that displays a placeholder, while it pulls down a new bundle containing a bunch of fresh components. And once the bundle is done loading, it could show the elements. Possibly using some sort of namespaced model to manage the state of loading the bundle. Or perhaps use a browserify transform to take care of this. There are options.

But yeah, once again: I wouldn't worry about this too much for now until you've actually built a huge application that needs splitting. Hope this answers your question. Cheers!

@jeffbski
Copy link
Author

jeffbski commented Jul 20, 2016

As a person who directs and trains developers, I evaluate technology so that I can guide people on what are the best things to use. Having been a professional developer for over 25 years, I already know what types of things corporations run into building large apps. I've seen it over and over again. Corporations are dealing with large complex apps.

So my point in bringing this up is that I know this is a requirement for large apps and it would be beneficial to many others as well.

This is something that is already available with React and React Router, so I was hoping choo would have an official story on how to handle this. I think choo looks promising as an alternative framework but I need to understand how it scales up to build complex apps. I can't recommend it for large apps unless I know how it can deal with componentization, dynamic loading, ...

As the author, given that you are the most familiar with the best way to use this framework, if it is possible to do this type of thing then it would be extremely valuable for you to document or create an example showing how this would work. Anyone that is evaluating the technology will be looking for some key features with examples and in the absence of those, choo might be dismissed prematurely.

In Javascript there are just so many frameworks coming out everyday and developers typically don't have the time to just figure this stuff out themselves. They will just go with the ones that clearly support their necessary features and have already documented and created examples.

So that's why I posted this issue. I think choo has some real innovation here and I would like to see it succeed. Anything you can do to document, create examples, and think about how this scales up to very large apps the better. No one wants to start using a framework if there is a chance they are going to run into a brick wall down the road, they need to know the strategies available to them as their app grows and becomes complex.

All the best.

@yoshuawuyts
Copy link
Member

Ah yeah, fair enough - reopening ✨. If people are curious about this then scribbling down a somewhat more elaborate answer might be good. Hmm, I think this might be a good one for the handbook.

I think an elegant solution will probably be possible in the near future, most likely being somewhat a combination of factor-bundle and #155.

Thanks heaps for opening this issue; definitely something to consider for people that are planning to build huge things with choo 🚒:train::train::train:

@yoshuawuyts yoshuawuyts reopened this Jul 20, 2016
@jeffbski
Copy link
Author

Awesome! That's wonderful. Thanks.

On Wed, Jul 20, 2016 at 1:27 PM, Yoshua Wuyts notifications@github.com
wrote:

Reopened #180 #180.


You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
#180 (comment), or mute
the thread
https://github.com/notifications/unsubscribe-auth/AAAWORm-LouJ4m-ZEI-NufXf5kYDVzhAks5qXmitgaJpZM4JQEyb
.

Jeff Barczewski
Founder of CodeWinds
http://codewinds.com/
Online developer training

@yoshuawuyts
Copy link
Member

Closing because choo@5 will introduce a new API. See #425 for the merged PR. Thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants