We already built an SPA in the previous chapter.
component feature of KnockoutJS gives us a way to make SPA, because we can put components inside a page, and with the help of control flow binding we can load and update the view without any page reload.
The main problem with this solution is the maintainability of the application.
You can easily see that it should be really hard to build and manage a big complex application in this way.
At the start of 2014, Steven Sanderson (main maintainer of KnockoutJS) started a conversation with the team about the new features component and custom element.
Steven Sanderson explained that these new features were not intended to move KnockoutJS into a fully featured SPA framework because the main goal of this library is doing data-binding, and it is doing it really well.
For this reason, if you are going to realize an SPA it's better to use a framework built for that, instead of relying only on KnockoutJS.