我对vue中的app.vue文件有疑问

时间:2018-10-06 03:00:07

标签: vue.js

在vue中,如果在以下名为app.vue的文件中声明,则text.vue的内容将应用于所有页面。顺便说一句,我不希望将text.vue应用于某些页面。有办法吗?

app.vue 
<template>
<div>
<test></test>
</div>
</template>

1 个答案:

答案 0 :(得分:1)

您可以使用v-if来根据页面有条件地显示某些组件。

您尚未提供有关页面组织方式的任何详细信息,但假设您使用的是vue-router,并且您的路线设置如下:

router.map({
    '/page_one': { name: 'pageOne', component: PageOneView },
    '/page_two':  { name: 'pageTwo', component: PageTwoView },
});

然后,您可以在组件上添加v-if来检查当前路线的名称:

<template>
  <div>
    <test v-if="['pageOne'].indexOf($route.name) > -1"></test>
  </div>
</template>

上面代码中提供的数组表示您要隐藏组件的路线(如果希望将组件隐藏在指定的路线上,可以更改比较逻辑以仅在指定的路线上显示该组件。大部分路线)。