我正在考虑使用VueJS作为一个多页面的网站。在正式的路由示例中,它们显示您可以根据URL动态地更改模板和组件,但是它们仍然在一个文件中同时加载所有的HTML和JS组件。
我的网站将会很大,我只想在需要的时候加载所有的东西。因此,我的问题是:如何异步加载这些模板和JS组件, modified ,当URL被更改时?,只需展示如何修改上面的路由示例来加载动态脚本。
发布于 2014-10-01 16:01:07
更新:请参阅官方文档中的异步组件部分。
发布于 2015-12-09 15:59:40
硬编码但工作。Webpack的解决方案对初学者来说太难了,就像我一样。
var router = new VueRouter({hashbang:false})
var routerMap = {};
router.beforeEach( function (transition) {
var path = transition.to.path;
if ((path != '/') && !(path in routerMap)) {
_ajax('/reports/'+ path + '.html', function(res){//$.ajax replacement (async)
routerMap[path] = {
component: {
template: res
}
};
router.on(path, routerMap[path]); //associate dynamically loaded component
transition.abort(); //abort current
router.stop();
router.start(); //restart router
router.go(path); //init new transition to the same path
});//_ajax
} else
transition.next(); //default action for already loaded content
});https://stackoverflow.com/questions/26093526
复制相似问题