1、新建带有router的vue项目,在views下添加NewsView.vue页面

  1. <template>
  2. <div>
  3. <ul>
  4. <li>
  5. <router-link to="/newsdetails/百度">百度新闻</router-link>
  6. </li>
  7. <li>
  8. <router-link to="/newsdetails/腾讯">腾讯新闻</router-link>
  9. </li>
  10. <li>
  11. <router-link to="/newsdetails/网易">网易新闻</router-link>
  12. </li>
  13. </ul>
  14. </div>NewsView
  15. </template>

2、在views下添加NewsDetailsView.vue页面

  1. <template>
  2. <p> {{ $route.params.name }}详情 </p>
  3. </template>

3、在router的index.js中配置路由

  1. import { createRouter, createWebHistory } from 'vue-router'
  2. import HomeView from '../views/HomeView.vue'
  3. const routes = [
  4. {
  5. path: '/',
  6. name: 'home',
  7. component: HomeView
  8. },
  9. {
  10. path: '/about',
  11. name: 'about',
  12. // 一般非首页会用这种方式进行引入,这种方式只有要显示时才会加载,相当于加快了网站首页的显示
  13. component: () => import('../views/AboutView.vue')
  14. },
  15. {
  16. path: '/news',
  17. name: 'news',
  18. // 一般非首页会用这种方式进行引入,这种方式只有要显示时才会加载,相当于加快了网站首页的显示
  19. component: () => import('../views/NewsView')
  20. },
  21. {
  22. path: '/newsdetails/:name',
  23. name: 'newsdetails',
  24. // 一般非首页会用这种方式进行引入,这种方式只有要显示时才会加载,相当于加快了网站首页的显示
  25. component: () => import('../views/NewsDetailsView')
  26. },
  27. ]
  28. const router = createRouter({
  29. history: createWebHistory(process.env.BASE_URL),
  30. routes
  31. })
  32. export default router

4、app.vue添加新闻

  1. <template>
  2. <nav>
  3. <router-link to="/">首页</router-link> |
  4. <router-link to="/about">关于</router-link> |
  5. <router-link to="/news">新闻</router-link>
  6. </nav>
  7. <router-view/>
  8. </template>
  9. <style>
  10. #app {
  11. font-family: Avenir, Helvetica, Arial, sans-serif;
  12. -webkit-font-smoothing: antialiased;
  13. -moz-osx-font-smoothing: grayscale;
  14. text-align: center;
  15. color: #2c3e50;
  16. }
  17. nav {
  18. padding: 30px;
  19. }
  20. nav a {
  21. font-weight: bold;
  22. color: #2c3e50;
  23. }
  24. nav a.router-link-exact-active {
  25. color: #42b983;
  26. }
  27. </style>

5、查看效果

新闻界面:
image.png
点击百度新闻,跳转到详情界面:
image.png