从0开始搭建基于VUE的前端项目(四) Vue-Router的使用与配置

版本

  1. vue-router 3.6.5 (https://v3.router.vuejs.org/zh/)

安装

安装要指定版本,默认安装的4版本的

bash 复制代码
npm install vue-router@3.6.5

代码实现

  1. 在src目录下创建router目录
    router/index.js
javascript 复制代码
import Vue from 'vue'
import Router from 'vue-router'

Vue.use(Router)

const routes = [
  { path: '/foo', component: () => import('@/views/foo') },
  { path: '/bar', component: () => import('@/views/bar') }
]

export default new Router({
  // mode: 'history', // 去掉url中的#
  routes
})
  1. 在src目录下创建views目录
    views/foo.vue
javascript 复制代码
<template>
  <div>foo</div>
</template>

views/bar.vue

javascript 复制代码
<template>
  <div>bar</div>
</template>
  1. 在main.js引入router
javascript 复制代码
//....
import router from './router';

//....

new Vue({
  store,
  router,
  render: h => h(App),
}).$mount('#app')
  1. 修改app.vue,引入组件 router-view和router-link
    router-view:显示跳转后的页面
    router-link:链接跳转
javascript 复制代码
<template>
  <div id="app">
    <p>
    <!-- 使用 router-link 组件来导航. -->
    <!-- 通过传入 `to` 属性指定链接. -->
    <!-- <router-link> 默认会被渲染成一个 `<a>` 标签 -->
    <router-link to="/foo">Go to Foo</router-link> <br/>
    <router-link to="/bar">Go to Bar</router-link>
    </p>
    <!-- 编程式路由 -->
    <button @click="goFoo">goFoo</button>
    <!-- 路由出口 -->
    <!-- 路由匹配到的组件将渲染在这里 -->
    <router-view></router-view>
  </div>
</template>

<script>

export default {
  name: 'App',
  components: {
    
  },
  methods: {
    goFoo() {
      this.$router.push('foo');
    }
  }
}
</script>

嵌套路由

要注意,以 / 开头的嵌套路径会被当作根路径。 这让你充分的使用嵌套组件而无须设置嵌套的路径。

  1. 创建嵌套路由
javascript 复制代码
const routes = [
  {  
    path: '/foo', 
    component: () => import('@/views/foo'), 
    children:[
      {
        path: 'childfoo',
        name: 'childfoo',
        component: () => import('@/views/childfoo'), 
      }
    ] 
  },
  {  path: '/bar', component: () => import('@/views/bar') }
]
  1. 在foo.vue增加router-view
javascript 复制代码
<template>
  <div>
    <p>foo</p>
    <router-view></router-view>
  </div>
</template>
  1. 创建childfoo.vue
javascript 复制代码
<template>
  <div>
    <p>child foo</p>
  </div>
</template>
相关推荐
小强库计算机毕业设计4 天前
SpringBoot+Vue3 学生宿舍管理系统实战
java·spring boot·后端·vue·学生宿舍管理系统
YIAN6 天前
从 Hash 底层原理到 React Router v6 实战:我学会了什么?
前端·react.js·vue-router
TELL5216 天前
vue前端架构
vue
南城以南溫暖如初1476 天前
社区健身小程序开发流程详解:技术选型与实施经验分享
java·经验分享·spring boot·mysql·vue·apache
万亿少女的梦1686 天前
基于Spring Boot、Vue与MySQL的私人健身教练预约管理系统设计
java·spring boot·mysql·vue·预约管理
满栀5858 天前
vue动态路由效果
前端·javascript·vue.js·前端框架·vue
碧水澜庭8 天前
头条【vue+fastapi 】全栈教学项目系列之《02_双系统零基础环境搭建手册》
vue·fastapi
DsirNg10 天前
从 `@wheel.prevent.stop` 到事件捕获:一次讲清浏览器事件流与 Vue 事件修饰符
javascript·vue·事件修饰符·事件冒泡·dom 事件·事件捕获·wheel
其美杰布-富贵-李10 天前
Vue 3 模板语法速通:彻底理解 `:`、`@`、`#`、`v-if`、`v-for` 与 `v-model`
vue
DsirNg11 天前
基于拓扑排序的画布自动布局:用最长上游路径决定节点列级
vue·流程图·拓扑排序·状态管理·有向图·自动布局·最长路径