簡體   English   中英

有條件地加載vue-router

[英]Conditionally load vue-router

我正在我的主vue實例上設置我的路由器,如下所示:

router.js:

const router = new VueRouter({
    routes: []
});

主Vue實例:

import router from '@/router';

window.app = new Vue({
    el: '#vue',

    router,

    // etc.
});

現在我在一個PHP應用程序中運行它,這個Vue實例在任何地方設置,因為我在整個地方使用Vue組件。

路由器是我只用於幾頁的東西。 我希望只有某些PHP頁面可以擁有Vue Javascript路由器。

即使在甚至沒有加載路由器router-view PHP頁面上,路由器仍然會激活。 片段可以看到:

#/

我如何確保路由器僅在某些PHP路由上啟動(可以這么說)?

您可以將全局js變量添加到頁面。 這將定義您是否需要路由器。 我假設您可以通過PHP代碼識別它。

所以從php方面你可以根據條件true或flase寫出這樣的東西;

// you can set this variable as per your need 
$needRouter = false;

然后在你的html模板里面

如果它的任何模板引擎(例如我們使用twig)將此變量傳遞給模板

<script>
    window.needRouter = {{ needRouter }};
</script>

或者如果您更喜歡使用核心PHP

echo '<script>window.needRouter = ' . ($needRouter ? 'true' : 'false') . ';</script>';

這將根據條件輸出<script> window.needRouter = true; </ script><script> window.needRouter = false; </ script>

現在在你的main.js里面

import router from '@/router';

let vueOptions = {
    el: '#vue', 
    // we will not assign route here
    // etc.
};

if(window.needRouter) {
    // we will assign route here if window.needRoute is true
    vueOptions.router = router;
}

window.app = new Vue(vueOptions);

如果你有什么困惑你如何從PHP設置js變量請評論。

暫無
暫無

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

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