Ste*_*n-v 4 javascript php vue.js vue-router vuejs2
我正在我的主vue实例上设置我的路由器,如下所示:
router.js:
const router = new VueRouter({
routes: []
});
Run Code Online (Sandbox Code Playgroud)
主Vue实例:
import router from '@/router';
window.app = new Vue({
el: '#vue',
router,
// etc.
});
Run Code Online (Sandbox Code Playgroud)
现在我在一个PHP应用程序中运行它,这个Vue实例在任何地方设置,因为我在整个地方使用Vue组件.
路由器是我只用于几页的东西.我希望只有某些PHP页面可以拥有Vue Javascript路由器.
即使在router-view
甚至没有加载的PHP页面上,路由器仍然会激活.片段可以看到:
#/
Run Code Online (Sandbox Code Playgroud)
我如何确保路由器仅在某些PHP路由上启动(可以这么说)?
您可以将全局js变量添加到页面.这将定义您是否需要路由器.我假设您可以通过PHP代码识别它.
所以从php方面你可以根据条件true或flase写出这样的东西;
// you can set this variable as per your need
$needRouter = false;
Run Code Online (Sandbox Code Playgroud)
然后在你的html模板里面
如果它的任何模板引擎(例如我们使用twig)将此变量传递给模板
<script>
window.needRouter = {{ needRouter }};
</script>
Run Code Online (Sandbox Code Playgroud)
或者如果您更喜欢使用核心PHP
echo '<script>window.needRouter = ' . ($needRouter ? 'true' : 'false') . ';</script>';
Run Code Online (Sandbox Code Playgroud)
这将根据条件输出<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);
Run Code Online (Sandbox Code Playgroud)
如果你有什么困惑你如何从PHP设置js变量请评论.
归档时间: |
|
查看次数: |
437 次 |
最近记录: |