簡體   English   中英

使用 VueJS 動態加載組件和模板

[英]Dynamic component and template loading with VueJS

我正在考慮將 VueJS 用於多頁網站。 在官方的路由示例中,它們表明您可以根據 URL 動態更改模板和組件,但它們仍然將所有 HTML 模板和 JS 組件放在一個文件中,一次加載。

我的網站將非常大,我只想在需要時加載所有內容。 所以我的問題是:當 URL 發生變化時,如何按需異步加載這些 HTML 模板和 JS 組件? 僅展示如何修改上述路由示例以進行動態腳本加載會很有幫助。

更新:請參閱官方文檔中的 異步組件部分。

硬編碼,但工作。 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
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM