vue动态路由不匹配组件

发布于 2022-09-11 23:18:52 字数 1769 浏览 18 评论 0

问题描述

最近在拿大前端的一个博客主题在本地练习使用Vue全家桶开发(可能不适合,但是还是想练习一下)已经规划好了顶部导航组件Header,底部版权部分的组件Footer,以及侧边栏的Sidebar组件。然后中间的内容列表和文章的详情页(Article.vue)就想在App.vue的 <router-view />里面做渲染,数据用的本地的mock。目前导航部分基本没什么问题了。但是现在在首页Index.vue,希望通过点击文章列表的文章链接,进入Article.vue.

相关代码

目录结构
QQ截图20191102154220.png

路由配置:

import Vue from "vue";
import VueRouter from "vue-router";
Vue.use(VueRouter);
const routes = [
  {
    path: "/",
    name: "Index",
    meta: {
      title: "首页"
    },
    component: () => import("@/views/Index/Index.vue")
  },
  {
    path: "/frontend",
    name: "Frontend",
    meta: {
      title: "前端"
    },
    component: () => import("@/views/Frontend/Frontend.vue")
  },
  {
    path: "/frontend/ecmascript",
    name: "EcmaScript",
    component: () => import("@/views/Frontend/EcmaScript.vue"),
    meta: {
      title: "前端"
    },
    //  /frontend/ecmascript/123.html
    children: [
      {
        path: ":id",
        name: "Article",
        component: () => import("@/views/Content/Article.vue")
      }
    ]
  },
  {
    path: "/about",
    name: "About",
    meta: {
      title: "关于我们"
    },
    component: () => import("@/views/About/About.vue")
  }
];
const router = new VueRouter({
  mode: "history",
  routes
});
export default router;

这个是首页列表中的的一个文章链接:

<router-link class="focus" :to="article.url" @click="getArcFromId(article)" exact>
 <img :alt="article.title" :src="article.cover" class="thumb" />
</router-link>

目前的情况是,任意点击一个文章链接,依然还是进入到该文章的栏目列表页也就是渲染栏目页的组件
1.希望点击这个文章链接,然后渲染Article.vue
2.如何通过链接把文章ID传入Article.vue,然后再相应的显示内容?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

以歌曲疗慰 2022-09-18 23:18:53

你期待的结果是什么?实际看到的错误信息又是什么?

不太懂你这句话的意思,你这句话是在问别人?还是在问你自己?

把这里的 to 拿掉,直接使用 @click 事件手动跳转

methods: {
    jumpToPage(article) {
        this.$router.push({
            pathname: `/article/${article.id}`
        });
    }
}

或者是去掉 @click,把 URL 地址拼接到 to 的值里

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文