Vue----vue-router 4.x 的基本使用步骤

news/2024/7/9 23:54:36 标签: vue.js, 前端框架, vue, 前端, router

文章目录

      • 2.3 vue-router 4.x 的基本使用步骤
        • 2.3.1 在项目中安装 vue-router
        • 2.3.2 定义路由组件
        • 2.3.3 声明路由链接和占位符
        • 2.3.4 创建路由模块
          • 2.3.4.1 从 vue-router 中按需导入两个方法
          • 2.3.4.2 导入需要使用路由控制的组件
          • 2.3.4.3 创建路由实例对象
          • 2.3.4.4 向外共享路由实例对象
          • 2.3.4.5 完整代码
          • 2.3.4.6 在 main.js 中导入并挂载路由模块


vuerouter_4x__3">2.3 vue-router 4.x 的基本使用步骤

① 在项目中安装 vue-router
② 定义路由组件
③ 声明路由链接和占位符
④ 创建路由模块
⑤ 导入并挂载路由模块

vuerouter_10">2.3.1 在项目中安装 vue-router

vue3 的项目中,只能安装并使用 vue-router 4.x。安装的命令如下:

npm i vue-router@next -S

2.3.2 定义路由组件

在项目中定义 MyHome.vue、MyMovie.vue、MyAbout.vue 三个组件,将来要使用 vue-router 来控制它们的展示与切换:

MyHome.vue

<template>
  <div>
    <h3>MyHome 组件</h3>
  </div>
</template>

<script>
export default {
  name: 'MyHome',
}
</script>

<style lang="less" scoped></style>

MyMovie.vue

<template>
  <div>
    <h3>MyMovie 组件</h3>
  </div>
</template>

<script>
export default {
  name: 'MyMovie',
}
</script>

<style lang="less" scoped></style>

MyAbout.vue

<template>
  <div>
    <h3>MyAbout 组件</h3>
  </div>
</template>

<script>
export default {
  name: 'MyAbout',
}
</script>

<style lang="less" scoped></style>

2.3.3 声明路由链接和占位符

可以使用 <router-link>标签来声明路由链接,并使用 <router-view>标签来声明路由占位符。

App.vue

<template>
  <div>
    <h1>vue-router 的基本使用</h1>
    <!-- 声明路由链接 -->
    <router-link to="/home">首页</router-link>&nbsp;
    <router-link to="/movie">电影</router-link>&nbsp;
    <router-link to="/about">关于</router-link>
    <hr />

    <!-- 路由的占位符 -->
    <router-view></router-view>
  </div>
</template>

<script>
export default {
  name: 'MyApp',
}
</script>

<style></style>

2.3.4 创建路由模块

在项目中创建 router.js 路由模块,在其中按照如下 5 个步骤创建并得到路由的实例对象:

① 从 vue-router 中按需导入两个方法
② 导入需要使用路由控制的组件
③ 创建路由实例对象
④ 向外共享路由实例对象
⑤ 在 main.js 中导入并挂载路由模块

vuerouter__114">2.3.4.1 从 vue-router 中按需导入两个方法
//  从 vue-router 中按需导入两个方法
// createRouter 方法用于创建路由的实例对象
// createwebHashHistory 用于指定路由的工作模式hash模式>
import { createRouter, createWebHashHistory } from 'vue-router'
2.3.4.2 导入需要使用路由控制的组件
import Home from './MyHome.vue'
import Movie from './MyMovie.vue'
import About from './MyAbout.vue'
2.3.4.3 创建路由实例对象
// 创建路由对象
const router = createRouter({
  // 指定路由的工作模式
  history: createWebHashHistory(),
  // 声明路由的匹配规则
  routes: [
    { path: '/', redirect: '/home' },
    { path: '/home', component: Home },
    { path: '/movie', component: Movie },
    { path: '/about', component: About },
  ],
})
2.3.4.4 向外共享路由实例对象
// 导出路由对象
export default router
2.3.4.5 完整代码
//  从 vue-router 中按需导入两个方法
import { createRouter, createWebHashHistory } from 'vue-router'

import Home from './MyHome.vue'
import Movie from './MyMovie.vue'
import About from './MyAbout.vue'

// 创建路由对象
const router = createRouter({
  // 指定路由的工作模式
  history: createWebHashHistory(),
  // 声明路由的匹配规则
  routes: [
    { path: '/', redirect: '/home' },
    { path: '/home', component: Home },
    { path: '/movie', component: Movie },
    { path: '/about', component: About },
  ],
})

// 导出路由对象
export default router

2.3.4.6 在 main.js 中导入并挂载路由模块
import { createApp } from 'vue'

// 导入App组件
import App from './components/02.start/App.vue'
//导入路由模块
import router from './components/02.start/router'
const app = createApp(App)

// 挂载路由模块
app.use(router)

app.mount('#app')

完整代码:

//导入创建Vue实例对象的方法
import { createApp } from 'vue'

// 导入App组件
import App from './components/02.start/App.vue'
//导入路由模块
import router from './components/02.start/router'

import './assets/css/bootstrap.css'
import './index.css'

const app = createApp(App)

// 挂载路由模块
app.use(router)

app.mount('#app')

http://www.niftyadmin.cn/n/563746.html

相关文章

小白如何学习代码

第一关、计算机基础知识体系&#xff0c;任何一个软件开发工程师&#xff0c;都需要熟知计算机基础知识。这一关必须过&#xff0c;当然也有跳过的&#xff0c;认为其太简单&#xff0c;跳关了。结果呢&#xff0c;就是在你的职业生涯中会遇到很多问题&#xff0c;你根本不知从…

Vue----vue-router 的高级用法

文章目录3 vue-router 的高级用法3.1 路由重定向3.2 嵌套路由3.2.1 嵌套路由的实现步骤3.2.2 声明子路由链接和子路由占位符3.2.3 通过 children 属性声明子路由规则3.2.4 默认子路由3.3 动态路由匹配3.3.1 动态路由的使用3.3.2 $route.params 参数对象3.3.3 使用 props 接收路…

Vue -- 编程式路由导航

文章目录1. 声明式导航 & 编程式导航1.1 声明式导航1.2 编程式导航2. vue-router 中的编程式导航 API2.1 常用的编程式导航 API2.2 \$router.push与\$router.replace2.3 $router.go2.4 $router.back() & $router.forward()3. 总结 编程式路由导航1. 声明式导航 & 编…

Vue----导航守卫

文章目录3.5 导航守卫3.5.1 全局前置守卫3.5.2 守卫方法的 3 个形参3.5.3 next 函数的 3 种调用方式3.5.4 控制后台主页的访问权限src/router/index.js3.5 导航守卫 Vue2与Vue3 导航守卫可以控制路由的访问权限。 3.5.1 全局前置守卫 每次发生路由的导航跳转时&#xff0c;都…

Vue----路由高亮 命名路由

文章目录3.6 路由高亮3.6.1 默认的高亮 class 类3.6.2 自定义路由高亮的 class 类3.7 命名路由3.7.1 使用命名路由实现声明式导航3.7.2 使用命名路由实现编程式导航3.6 路由高亮 Vue3 可以通过如下的两种方式&#xff0c;将激活的路由链接进行高亮显示&#xff1a; ① 使用默认…

Vue学习----从基础出发(包含案例)

文章目录Vue基础入门Vue简介vue的基本使用Vue的调试工具Vue指令1 指令的概念2 指令的分类3 内容渲染指令4 属性绑定指令5 模板渲染语法中使用JavaScript表达式6 事件绑定指令7 双向绑定指令8 条件渲染指令9 列表渲染指令过滤器(Vue3弃用)品牌列表案例Vue组件基础单页面应用程序…

MySQL----SQL提示

文章目录use index &#xff1a;ignore index &#xff1a;force index &#xff1a;表格的建立&#xff1a; MySQL----索引 表格当前有的索引&#xff1a; show index from tb_user;执行SQL&#xff1a; explain select * from tb_user where profession 软件工程;查询走了…

MySQL----覆盖索引

文章目录尽量使用覆盖索引&#xff0c;减少select *。 覆盖索引&#xff1a; 指查询使用了索引&#xff0c;并且需要返回的列&#xff0c;在该索引中已经全部能够找到 。 explain select id, profession from tb_user where profession 软件工程 and age 31 and status 0 …