账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    vue路由页面不跳转问题
    • 2018-06-20 00:00
    • 10
    21
    0

    利用 this.$router.push({path: '/profile/recharge'}); 跳转到
    /profile/recharge 发现浏览器地址变了,但页面还是原来的页面。

    文件的路径都没有问题,在 profile.vue 上触发点击事件时,自定义的 click 方法执行了。但页面没跳转。能不能是页面跳转过去又跳转回来了? 但 recharge.vue 里的初始化方法没执行。不知道我理解的是否正确。 还请 老司机 帮忙看看,非常感谢。

    router.js

    
    import App from '../App.vue';
    
    const home = () => import(/* webpackChunkName: "home" */'../page/home/home.vue');
    const profile = () => import(/* webpackChunkName: "profile" */ '../page/profile/profile.vue');
    const recharge = () => import(/* webpackChunkName: "recharge" */ '../page/profile/children/recharge.vue');
    
    export default [{
        path: '/',
        component: App,
        children: [{
            path: '',
            redirect: '/home'
        },{
            path: '/home',
            component: home
        },{
            path: '/profile',
            component: profile,
            children: [{
                path: 'recharge',
                component: recharge
            }]
        }]
    }]
    

    App.vue

    <template>
        <div>
            <transition name="router-fade" mode="out-in">
                <keep-alive>
                    <router-view v-if="$route.meta.keepAlive"></router-view>
                </keep-alive>
            </transition>
            <transition name="router-fade" mode="out-in">
                <router-view v-if="!$route.meta.keepAlive"></router-view>
            </transition>
        </div>
    </template>
    
    <script type="text/babel">
        export default {
            data(){
                return {
    
                }
            }
        }
    </script>
    
    <style>
        .router-fade-enter-active, .router-fade-leave-active {
            transition: opacity .3s;
        }
        .router-fade-enter, .router-fade-leave-active {
            opacity: 0;
        }
    </style>

    profile.vue

    <template>
        <div>
            <header-top />
    
            <section>
    
                <section class="profile-number">
                    <van-button size="large" @click="rechargePage">RECHARGE</van-button>
                </section>
    
    
                <section class="profile-list-group">
                    <van-cell-group>
                        <van-cell title="常见问题" icon="records" is-link />
    
                    </van-cell-group>
                </section>
            </section>
    
    
            <footer-guide />
    
        </div>
    </template>
    
    
    <script type="text/babel">
    
        import HeaderTop from '../../components/header.vue';
        import FooterGuide from '../../components/footer.vue';
    
        export default {
            data(){
                return {
    
                }
            },
            components: {
                HeaderTop,
                FooterGuide
            },
            methods: {
                rechargePage(){
                    console.log('click');
                    console.log(this.$router);
                    this.$router.push({path: '/profile/recharge'});
                }
    
            }
        }
    </script>

    recharge.vue

    <template>
        <div>
            <header-top />
    
            <section>
    
                <section >
                    lalala
                </section>
    
    
            </section>
    
    
            <footer-guide />
    
        </div>
    </template>
    
    
    <script type="text/babel">
    
        import HeaderTop from '../../../components/header.vue';
        import FooterGuide from '../../../components/footer.vue';
    
        export default {
            data(){
                return {
    
                }
            },
            created(){
                alert('ok');
            },
            components: {
                HeaderTop,
                FooterGuide
            }
        }
    </script>
    
    0
    打赏
    收藏
    点击回答
    您的回答被采纳后将获得:提问者悬赏的 10 元积分
        全部回答
    • 0
    • 斑点熊猫 普通会员 1楼

      在 Vue 中,当用户在页面上点击某个链接时,通常需要执行一些额外的操作(如跳转到另一个页面、加载新的数据等)。然而,有时候用户可能不会点击任何链接,而是通过一个特定的事件(如点击 锚点前进/后退 等)来导航。

      如果你遇到一个问题,即使你在路由页面上没有执行任何额外的操作,但是用户仍然不跳转,那么这可能是由于以下原因:

      1. 没有正确的路由配置:你可能需要检查你的路由配置,确保它包含了所有需要跳转的页面和正确的导航链接。同时,确保你在组件的 beforeDestroy 钩子中关闭了路由,以防止路由被再次激活。

      2. 没有使用 router.pushrouter.replace:这些方法用于在当前页面上直接导航到另一个页面,而不是触发路由跳转。如果你没有使用这些方法,那么用户可能会被意外地导航到一个页面。

      3. 没有监听 router.pushrouter.replace:你需要在组件的 created 钩子中初始化这些方法,以便它们可以在路由发生改变时被触发。

      4. 配置错误:你可能需要检查你的路由配置,确保它正确地定义了路径和模式。同时,确保你在路由之间添加了正确的分页逻辑,以便用户能够看到页面的滚动条。

      如果你能提供更多的代码和详细信息,我会更好地帮助你解决问题。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部