javascript - vue 路由跳转后 怎样去掉指定的组件?
怪我咯
怪我咯 2017-04-11 08:56:52
[JavaScript讨论组]

是这样的,我要做一个话题列表,点击某个话题跳到 帖子详情页。
问题是:
1.这个话题列表页有3个公用的组件;top ,banner,bottom;我用路由跳转到帖子详情怎样让banner这个组件不显示?
请各位大神给点提示,刚用Vue,好不容易才搭好环境。。。贴上代码, 用的是VUE2。。。

这是App.vue

    

main.js

import Vue from 'vue'
import App from './App.vue'
import VueRouter from "vue-router";
import VueResource from 'vue-resource'
//开启debug模式
Vue.config.debug = true;

Vue.use(VueRouter);
Vue.use(VueResource);
//定义组件

import home from './view/home.vue';
import bangbang from './view/bangbang.vue';
import about from './view/about.vue';
import join from './view/join.vue';
import contact from './view/contact.vue';
//创建一个路由 实例
// 并 配置 路由规则
const router = new VueRouter({
    mode: 'history',
    base: __dirname, //获取当前路径下的完整路径
    routes: [{
            path: '/',
            redirect: '/home'
        },
        {
            path: '/home',
            component: home
        },
        {
            path: "/bangbang",
            component: bangbang,
        },
        {
            path: '/about',
            component: about
        },
        {
            path: '/join',
            component: join
        },
        {
            path: '/contact',
            component: contact
        }

    ]
});


//启动路由
//路由会创建一个App 实例 并 挂载到 #app 对应在 元素上
const app = new Vue({
    router: router,
    render: h => h(App)
}).$mount('#app');


 这是跳到帖子详情的 

,

我也查了很久,说是用嵌套路由还有什么多个视图什么的, 也没弄清楚, 谢谢大家了。。。
怪我咯
怪我咯

走同样的路,发现不同的人生

全部回复(3)
大家讲道理
<banner v-if="$route.path!=='/bangbang'"></banner>

你的<router-link :to="{path:'banbang',query: {id:topicItem.id}}">里的写的banbang是不是少了个g?...

PHP中文网

我觉得你可以在routes里的每一项写一个beforeEnter,或者页面的components加上mounted钩子,然后在里面发个消息通知你的app,告诉ta,top、bottom、banner要不要显示;或者在app里watch那个$route,判断当前在什么页面那些需要显示,统一处理

PHP中文网

建议用vuex来进行状态管理,每个组件设置相应的状态

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号