按需加载页面

上面的例子都是提前定义各个页面的页面组件,如:IndexUser。这在规模较小的项目中没什么问题, 但当页面很多时,提前定义每个页面的页面组件,会使单文件体积过大,影响首次渲染速度。这时,按需加载各个 页面组件变得很迫切。利用webpack或者requireJs等工具可以很方便地实现页面根据路由按需加载。

我们只需要将上例中的路由配置routes更改为(假设文件放在pages目录下):

  1. var router = Router({
  2. '/': function() {
  3. // 按需加载页面组件
  4. require(['pages/index'], function(Page) {
  5. app.load(Page);
  6. });
  7. },
  8. '/user/:userId': function(userId) {
  9. require(['pages/user'], function(Page) {
  10. app.load(Page, {userId: userId});
  11. });
  12. }
  13. }).configure({
  14. notfound: function() {
  15. router.setRoute('/');
  16. }
  17. });