【问题标题】:Vue.js nested routingVue.js 嵌套路由
【发布时间】:2018-05-29 08:38:27
【问题描述】:

我目前的路线是

function route(path, view) {
return {
    path: path,
    meta: meta[path],
    component: resolve => import(`pages/${view}View.vue`).then(resolve)
   }
}

route('/', 'Home'),
route('/help', 'Help),
route('/blog', 'BlogList'),
route('/blog/:slug', 'BlogDetails'),

现在一切正常。但是当我访问/blog/:slug 路由时,当我从该组件单击返回到/help 从按钮路由模式是/blog/help 而不是/help

【问题讨论】:

  • 这就是嵌套路由很重要的原因

标签: javascript vue.js vue-router nested-routes


【解决方案1】:

请看我的jsfiddle Vuejs route,我的意思是这对你有帮助。

const Home = {
        template: '<h1>Home</h1>'
    };

    const Help = {
        template: '<h1>Help</h1>'
    };

    const Profile = {
        template: '<h1>Profile</h1>'
    };

    const User = {
        template: '<h1>User</h1>'
    };

    routes = [
        {path: '/', component: Home},
        {path: '/help', component: Help},
        {path: '/user', component: User},
        {path: '/user/:id', component: {
            render(h) {
                return h(
                    'h1',
                    { style: {color: 'skyblue'} },
                    `User id: ${this.$route.params.id}`
                );
            }
        }}
    ];

    const router = new VueRouter({
        routes
    });

    new Vue({
        router
    }).$mount('#app');
<script src="https://cdn.jsdelivr.net/npm/vue"></script>
<script src="https://unpkg.com/vue-router/dist/vue-router.js"></script>
   <div id="app">
        <router-link :to='{path: "/"}'>/</router-link> <br>
        <router-link :to='{path: "/help"}'>/help</router-link> <br>
        <router-link :to='{path: "/user"}'>/user</router-link> <br>
        <router-link :to='{path: "/user/userid"}'>/user/userID</router-link>
        {{$route.path}}
        <router-view></router-view>
        <br>
        <button @click='$router.go(-1)'>go back</button>
        <button @click='$router.go(1)'>go forward</button>
    </div>

【讨论】:

  • 如果你添加一些解释以及问题是什么以及为什么它不能与他的代码一起工作,那就太好了,所以将来它也可以帮助他更好地理解概念。
  • 我建议您阅读文档,以便清楚如何更好地做。您可以开始阅读“基本知识”和“高级 > 延迟加载”来解决您的问题。文档:router.vuejs.org/en.
  • 这与我或您无关,我们应该考虑问题以及我们如何帮助用户。
  • @HardikSatasiya 哦,我以为你是这个问题的作者,抱歉:) 我不知道为什么用户会这样做。我试图展示解决此问题的其他方法。当我们阅读文档时,我们了解更好的方法,所以我提供了一个链接。
猜你喜欢
  • 2018-11-06
  • 2019-05-28
  • 2017-04-06
  • 2017-05-21
  • 2019-08-24
  • 2020-07-18
  • 2011-10-10
  • 2017-10-31
  • 2019-03-13
相关资源
最近更新 更多