1. 概述

Vue Router 是 Vue.js 的官方路由。它与 Vue.js 核心深度集成,让用 Vue.js 构建单页应用变得轻而易举。功能包括:

  • 嵌套路由映射
  • 动态路由选择
  • 模块化、基于组件的路由配置
  • 路由参数、查询、通配符
  • 展示由 Vue.js 的过渡系统提供的过渡效果
  • 细致的导航控制
  • 自动激活 CSS 类的链接
  • HTML5 history 模式或 hash 模式
  • 可定制的滚动行为
  • URL 的正确编码

2. 安装

2.1.直接下载 / CDN

Unpkg.com 提供了基于 npm 的 CDN 链接:

<script src="https://unpkg.com/vue-router@3.0.0/dist/vue-router.js"></script>

2.2. NPM

[root@DESKTOP-MSD7I5A hello-world]# npm install vue-router@4

  • 注意:hello-world是我们使用vue\cli创建的一个项目 ,vue版本为3.x

3. 测试

3.1. 删除模板文件

创建的模板里具有HelloWorld、logo的我们不需要的文件或组件,删除

3.2. 编写自己的组件

定义一个Content.vueMain.vue的组件,在components 目录下存放我们自己编写的组件

Content.vue

<template>
<div>
<h1>内容页</h1>
</div>
</template> <script>
export default {
name:"content_page"
}
</script> <style> </style>

Main.vue

<template>
<div>
<h1>首页</h1>
</div>
</template> <script>
export default {
name: "main_page"
}
</script> <style> </style>

3.3. 安装路由

在src目录下,新建一个文件夹:router,专门存放路由,配置路由index.js,如下

// import Vue from 'vue'
// import Router from 'vue-router' //导入路由插件
import { createRouter,createWebHistory } from "vue-router"
import Main from '../components/Main' //导入首页
import Content from '../components/Content' //导入首页 // Vue.use(Router); //安装路由 export default new createRouter({ //配置路由
routes: [
{
//路由路径
path: '/content',
//路由名称
name: 'content',
//跳转到组件
component: Content
}, {
path: '/main',
name: 'main',
component: Main
}
],
// 采用 history 模式
history: createWebHistory(),
})

3.4. 配置路由

main.js中配置路由

import { createApp } from 'vue'
import App from './App.vue'
import router from './router' //自动扫描里面的路由配置 // createApp(App).mount('#app')
createApp(App).use(router).mount('#app')

3.5. 使用路由

App.vue中使用路由

<template>
<div id="app">
<!--
router-link:默认会被渲染成一个<a>标签,to属性为指定链接
router-view:用于渲染路由匹配到的组件
-->
<router-link to="/">首页</router-link> |
<router-link to="/content">内容</router-link>
<router-view></router-view>
</div>
</template> <script>
export default{
name:'App'
}
</script> <style></style>

3.6. 结果

执行npm run serve,打开浏览器:

4. 遇到的问题

[1]"export 'default' (imported as 'VueRouter') was not found in 'vue-router' - 简书 (jianshu.com)

[2]Uncaught TypeError: Cannot read property ‘use‘ of undefined:Vue3.0 - 安装路由 vue-router_Jie_1997的博客-CSDN博客_vue下载路由

[3]一次尴尬的vue-router的bug. Invalid route component at extractComponentsGuards - 小白小承 - 博客园 (cnblogs.com)

[4]vue/multi-word-component-names | eslint-plugin-vue (vuejs.org)

5. 参考资料

[1]安装 | Vue Router (vuejs.org)

[2]Vue课堂笔记/09vue-router路由.md · 卢泽华/Vue - 码云 - 开源中国 (gitee.com)

Vue学习笔记之Vue-Router的更多相关文章

  1. 【Vue学习笔记】—— vue的基础语法 { }

    学习笔记 作者:oMing vue v-on: 简称 @ <div id='app'> <button v-on:click='Show1'> </button> ...

  2. vue学习笔记(二)vue的生命周期和钩子函数

    前言 通过上一章的学习,我们已经初步的了解了vue到底是什么东西,可以干什么,而这一篇博客主要介绍vue的生命周期和它常用的钩子函数,如果有学过java的园友可能有接触到在学习servlet的时候学过 ...

  3. vue学习笔记:vue的认识与特点与获取

    Vue了解 Vue:读作 view Vue是一个渐进式框架 与其他重量级框架不同的是,Vue 采用自底向上增量开发的设计. Vue 的核心库只关注视图层,并且非常容易学习,非常容易与其它库或已有项目整 ...

  4. vue学习笔记—bootstrap+vue用户管理

    vue,读音view,简单易用的前端框架.特点如下: 1.一个mvvm的前端框架,内部做好了html中dom对象和后台用js语言定义的变量的双向绑定 2.中国人尤雨溪维护的个人项目,中文资料多,和go ...

  5. Vue学习笔记之Vue学习前的准备工作

    0x00 起步 1.扎实的HTML/CSS/Javascript基本功,这是前置条件. 2.不要用任何的构建项目工具,只用最简单的<script>,把教程里的例子模仿一遍,理解用法.不推荐 ...

  6. VUE学习笔记之vue cli 构建项目

    一.环境搭建: 1.安装node.js 从node.js官网下载并安装node,安装过程很简单,一路"下一步"就可以了.安装完成之后,打开命令行工具(win+r,然后输入cmd), ...

  7. Vue学习笔记之Vue组件

    0x00 前言 vue的核心基础就是组件的使用,玩好了组件才能将前面学的基础更好的运用起来.组件的使用更使我们的项目解耦合.更加符合vue的设计思想MVVM. 那接下来就跟我看一下如何在一个Vue实例 ...

  8. Vue学习笔记之Vue知识点补充

    0x00 修饰符 .lazy 在默认情况下,v-model 在每次 input 事件触发后将输入框的值与数据进行同步 .你可以添加 lazy 修饰符,从而转变为使用 change 事件进行同步: &l ...

  9. Vue学习笔记之Vue指令系统介绍

    所谓指令系统,大家可以联想咱们的cmd命令行工具,只要我输入一条正确的指令,系统就开始干活了. 在vue中,指令系统,设置一些命令之后,来操作我们的数据属性,并展示到我们的DOM上. OK,接下来我们 ...

  10. Vue学习笔记之Vue的使用

    0x00 安装 对于新手来说,强烈建议大家使用<script>引入 0x01 引入vue.js文件 我们能发现,引入vue.js文件之后,Vue被注册为一个全局的变量,它是一个构造函数. ...

随机推荐

  1. 深刻理解JAVA并发中的有序性问题和解决之道

    欢迎关注专栏[JAVA并发] 更多技术干活尽在个人公众号--JAVA旭阳 问题 Java并发情况下总是会遇到各种意向不到的问题,比如下面的代码: int num = 0; boolean ready ...

  2. MYSQL-INNODB索引构成详解

    作者:郑啟龙 摘要: 对于MYSQL的INNODB存储引擎的索引,大家是不陌生的,都能想到是 B+树结构,可以加速SQL查询.但对于B+树索引,它到底"长"得什么样子,它具体如何由 ...

  3. C#实现文件导入与导出

    无论是文件的导入与导出都需要引入IO库,引入方法如下: using System.IO; 通过以下代码可以实现将文件导入到数组中 string path;//定义一个路径 OpenFileDialog ...

  4. [深度学习] tf.keras入门2-分类

    目录 Fashion MNIST数据库 分类模型的建立 模型预测 总体代码 主要介绍基于tf.keras的Fashion MNIST数据库分类, 官方文档地址为:https://tensorflow. ...

  5. C++指针【cherno课程学习】

    定义: 指针是一个整数,一种存储内存地址的数字 内存就像一条线性的线,在这条街上的每一个房子都有一个号码和地址 类似比喻成电脑,这条街上每一个房子的地址 是一个字节 我们需要能够准确找到这些地址的方法 ...

  6. Git使用记录 - 持续更新

    本地生成 sshkey 打开git命令工具 cd ~/.ssh ssh-keygen -t rsa -C "实际的eamil地址" ··· // 一路回车,出现以下则说明成功 Yo ...

  7. solidity 内存(memory) 可变数组的增删改查 操作

    // SPDX-License-Identifier: MIT pragma solidity ^0.8.9; library Array { function push(uint256[] memo ...

  8. DVWA靶场实战(六)——Insecure CAPTCHA

    DVWA靶场实战(六) 六.Insecure CAPTCHA: 1.漏洞原理: Insecure CAPTCHA(不安全的验证码),CAPTCHA全程为Completely Automated Pub ...

  9. dfs 返回值用bool相对void会快一点

    力扣 剑指 Offer 12. 矩阵中的路径 超时代码 dfs返回值是void,用类内的全局变量flag表示找到或没找到. class Solution { public: bool flag; in ...

  10. Redis 正则扫描key并删除

    扫描key /** * @param key * @return * @Description: 通过Scan的方式迭代key */ public Set<String> scanKeys ...