Vue Router 入门指南:从零开始构建单页应用的路由系统

今天我们来聊聊vue-router,在此之前我们首先要有vue 单页应用这个概念,在vue的整个项目中其实只有一个html文件,在vue中我们写的每个页面其实只是html文件中的一个代码片段,我们通过一些特殊的手段来实现每次只让一个代码片段生效,这样就实现了多个html文件一样的效果。

vue-router

接下来,我们来介绍一下这些特殊手段之一的vue-router

创建路由

  • 我们要使用vue-router,就需要下载其依赖,把你的项目在终端打开,输入命令:npm install vue-router@4(在vue router官方文档可以找到),
  • 在scr文件夹下新建一个文件夹,在该文件夹下创建一个js文件来创建并配置路由
  • 在js文件中进行配置:
js 复制代码
import { createRouter, createWebHashHistory } from 'vue-router' // 导入我们要用到的函数


// 路由配置数组
const routers = [

]
// 创建路由实例
const router = createRouter({
  history: createWebHashHistory(), // 使用哈希模式的路由历史记录
  routes: routers // 路由配置数组
})


export default router // 导出路由实例
  • 在main.js中引入
js 复制代码
import { createApp } from 'vue'
import App from './App.vue'
import router from './router' // 导入创建的路由实例

createApp(App)
.use(router) // 使用路由实例
.mount('#app')
  • 这样我们就基本完成了路由的创建,接下来就是配置和使用。

配置路由

假设我们有一个首页(Home.vue),有一个分类页面(Sort.vue),其中首页下面又有两个子页面最新(New.vue)和推荐(Recommend.vue),那么我们可以这样来配置路由:

  • 我们先配置首页和分类页面的路由,在上面创建好的路由配置数组当中进行如下操作
js 复制代码
const routers = [
    {
        path: '/home', // 配置路由路径
        name: 'home', // 配置路由名,用于在代码中引用
        component: () => import ('../views/Home.vue'), // 该路由对应的组件 '../views/Home.vue' 表示组件的路径
    },
    {
        path: '/sort',
        name: 'sort',
        component: () => import ('../views/Sort.vue'),
    },
]
  • 接下来我们配置二级路由,也就是最新和推荐两个页面的路由,因为最新和推荐两个页面是首页的子页面,所以我们在首页的路由配置中通过使用children选项来实现二级路由的创建
js 复制代码
 {
        path: '/home', // 配置路由路径
        name: 'home', // 配置路由名,用于在代码中引用
        component: () => import ('../views/Home.vue'), // 该路由对应的组件 '../views/Home.vue' 表示组件的路径
        children: [
            {
                path: '/home/new',
                name: 'new',
                component: () => import ('../views/New.vue'),
            },
            {
                path: '/home/recomment',
                name: 'recomment',
                component: () => import ('../views/Recomment.vue'),
            },
        ]
    },

使用路由

  • 当用户访问不同的路由路径时,Vue Router 会根据路由配置找到对应的组件,并将其渲染到 <router-view></router-view> 标签所在的位置
  • 可以使用<router-link></router-link>标签进行跳转,例:
vue 复制代码
<template>
  <div>
    <router-link to="/home">首页</router-link> // /home 为所在页面的路径
    <router-link to="/sort">分类</router-link>
  </div>
  <router-view></router-view>
</template>
  • 二级路由的使用也是同理,我们在首页使用<router-view></router-view>,然后使用<router-link></router-link>标签进行跳转
vue 复制代码
<template>
    <div>
        <router-link to="/home/new">最新</router-link>
        <router-link to="/home/recomment">推进</router-link>
    </div>
    <router-view></router-view>
</template>
  • 除了使用<router-link></router-link>外,我们还可以通过编程式(绑定事件)导航来跳转页面

    this.$router.push('/home')

    this.$router.push({ path: '/home', query: { id: 123 } }) 可以传参数过去

    this.$router.push({ name: 'home' , params: { id: 123 } }) 需要在路径后面加上/:id

今天的分享就到这里。

相关推荐
网络点点滴9 分钟前
标签的ref属性
前端·javascript·vue.js
天若有情6731 小时前
前端 vs 后端:入行软件行业,我该如何选择?哪个更“简单”?
前端·后端·软件开发·职业·就业·选择
小画家~1 小时前
第二十八:golang Time.time 时间格式返回定义结构体
java·前端·golang
Cobyte2 小时前
17. Vue3 业务组件库按需加载的实现原理
前端·javascript·vue.js
谢尔登2 小时前
原型理解从入门到精通
开发语言·javascript·原型模式
粥里有勺糖2 小时前
视野修炼-技术周刊第127期 | Valdi
前端·javascript·github
前端世界2 小时前
从零搭建 ASP.NET 单文件 Web 项目:一个能真用的 BookShop 管理页实战
服务器·前端·asp.net
码上成长2 小时前
Vue Router 3 升级 4:写法、坑点、兼容一次讲透
前端·javascript·vue.js
BBB努力学习程序设计2 小时前
响应式页面设计与实现:让网站适配所有设备的艺术
前端·html
IT从业者张某某3 小时前
less 工具 OpenHarmony PC适配实践
前端·microsoft·less