Vue-router路由转发

  • 前言
  • 安装
  • 使用
    • 创建自己的组件
    • 创建router文件夹
    • 配置路由
    • 使用路由
  • 问题

前言

为什么我们要学习vue-router路由转发呢?

由于VUE只专注于视图层,所以其他的都由一些组件来完成,路由转发就是其中一个,VUE RouterVUE官方路由管理器,它和Vue.js的核心深度集成,让构建单页面应用变得易如反掌。

包含以下功能:

  • 嵌套的路由/视图表
  • 模块化的、基于组件的路由配置
  • 路由参数、查询、通配符
  • 基于Vue.js过渡系统的视图过渡效果
  • 细粒度的导航控制
  • 带有自动激活的CSS class的链接
  • HTML5历史模式或hash模式,在IE9中自动降级
  • 自定义的滚动条行为

安装

我们基于vue-cli进行测试学习,可以先查看node_modules中是否存在vue-router

使用如下命令进行安装:

npm install vue-router --save-dev

在当前项目下面进行安装

如果失败就使用cnpm
注意,最好不要用最新版本的,否则可能会出现问题,最好用3.x版本的。

如果你发现打包失败,或者提示找不到Router,就使用以下命令:

卸载原有路由:npm uninstall vue-router
安装3.0版本:npm i vue-router@3.5.2

vue2.x对应vue-router3.x
vue3.x对应vue-router4.x

使用

创建自己的组件

src/componts文件夹下面可以写我们自己的组件,这里我写了两个组件,一个是首页,一个是内容页面。
Main.vue

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

Content.vue

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

创建router文件夹

专门用来存放路由

我这里还创建了一个index.js,这里的index不是首页的意思,而是主要配置文件的意思,把我们创建的组件配置进来。

import Vue from 'vue'
import VueRouter from 'vue-router'
import Content from '../components/Content'
import Main from '../components/Main'//安装路由
Vue.use(VueRouter);//配置导出路由
export default new VueRouter({routes: [{//配置路由路径 相当于@RequestMappingpath: '/content',name: 'content',//跳转的组件component: Content},{//配置路由路径path: '/main',name: 'main',//跳转的组件component: Main}]});

这里我创建了两个组件,一个首页,一个是内容页

并且导入到我的路由中去

import Content from '../components/Content'
import Main from '../components/Main'

配置路由

main.js文件中配置路由

import router from './router' //自动扫描里面的路由配置
  //配置路由router,
// The Vue build version to load with the `import` command
// (runtime-only or standalone) has been set in webpack.base.conf with an alias.
import Vue from 'vue'
import App from './App'
import router from './router' //自动扫描里面的路由配置Vue.config.productionTip = false/* eslint-disable no-new */
new Vue({el: '#app',//配置路由router,components: { App },template: '<App/>'
})

使用路由

App.vue中使用路由

<template><div id="app"><img src="./assets/logo.png"><HelloWorld/><router-link to="/main">首页</router-link><router-link to="/content">内容页</router-link><router-view></router-view></div>
</template><script>
import HelloWorld from './components/HelloWorld'export default {name: 'App',components: {HelloWorld}
}
</script><style>
#app {font-family: 'Avenir', Helvetica, Arial, sans-serif;-webkit-font-smoothing: antialiased;-moz-osx-font-smoothing: grayscale;text-align: center;color: #2c3e50;margin-top: 60px;
}
</style>
  <router-link to="/main">首页</router-link><router-link to="content">内容页</router-link><router-view></router-view>

我们使用router-link,类似于<a>,to来控制我们跳转的位置,类似于href,然后使用<router-view>来显示我们的视图。

这样配置以后,我们就可以专注于写我们自己的组件,然后把组件写入index.js,最后在App.vue中展示出来即可。

问题

执行npm run dev,报错,显示没有找到Router,但是我们在前面已经安装了Router,这是怎么回事呢?

解决:由于我们安装vue-router的时候,没有指定相应的版本,所以默认安装最新版本,我们的vue是2.x的,不能使用vue-router4.x的,语法不同,所以执行会报错,我们需要给vue-router降级。
卸载原有路由:npm uninstall vue-router
安装3.0版本:npm i vue-router@3.5.2
这样即可解决。

Vue-router路由转发相关推荐

  1. Vue 学习(十、 Vue Router - 路由插件 和 Vue 的插件原理)

    文章目录 一.Vue Router - 路由插件 1. 安装 Vue Router 2. Vue Router 路由的基本使用 3. 设置 router-link 4. 编程式路由 5. 路由嵌套 6 ...

  2. Vue Router 路由管理

    文章目录 Vue Router 路由管理 概述 安装 简单使用 定义2个组件 定义路由信息 支持路由 使用路由 动态路由 配置动态路由 配置404 限制动态参数 嵌套路由 命名路由 编程式导航 简单使 ...

  3. 【Vue】相关生态——Vue Router路由

    Vue Router路由 基本使用 带参数的动态路由匹配 捕获所有路由或404 Not found 路由 嵌套路由 编程式导航 重定向和别名 将props传递给路由组件 不同的历史模式 进阶 导航守卫 ...

  4. Vue Router路由常用功能总结

    Vue Router路由常用功能总结 一.前言 二.安装 1. vueCLI安装 2. npm安装 三.路由配置及使用: 1. 基本配置: 2. 动态路由: 3. 嵌套路由: 四.编程式的导航 五.重 ...

  5. Vue.js 3.0 学习笔记(十一)Vue Router路由

    一.使用Vue Router 1.HTML页面使用路由 <!DOCTYPE html> <html> <head><meta charset="UT ...

  6. Vue | Vue Router 路由的使用

    文章目录 一.路由的基本使用 1.创建 Vue 项目并引入 vue-router 2.编写 Components 组件 3.编写路由文件 4.在主文件 Main.js 中引入路由 5.添加 route ...

  7. Vue Router 路由导航

    Vue Router 通过 Vue.js,我们已经用组件组成了我们的应用.当加入 Vue Router 时,我们需要做的就是将我们的组件映射到路由上,让 Vue Router 知道在哪里渲染它们. V ...

  8. Vue Router路由模式的区别 进程线程的区别

    Vue Router hash模式和history模式的区别 hash模式url里面永远带着#号,我们在开发当中默认就是hash模式. 那么什么时候需要用到history模式呢? 肯定是用户觉得#号太 ...

  9. vue router 路由跳转方法概述

    一.概述 使用到Vue的项目,我们最常见使用的就是Vue配套的Vue Router库. 那么在平日开发中,有多少种跳转路由的方法? 二.跳转方法 1.使用router-link标签 使用router- ...

  10. vue项目没有router文件夹_vue项目——Vue Router路由的使用

    前言: 学习vue也有一段时间了,这里把学习整个vue项目中的一些知识点和问题,整理下方便自己记录,也希望给大家带来方便.我会连续写几篇系统的文章,讲解一个完整的vue项目中用到的各个使用模块.今天先 ...

最新文章

  1. R语言使用ggplot2可视化互相覆盖的直方图实战(Overlaying histograms)
  2. Python3.x和Python2.x的区别
  3. Visual Studio 2019连接自动的Sql Server开发版数据库(C#语言)
  4. stream模式不能接受blob文件_一文带你层层解锁文件下载的奥秘
  5. struts2令牌(token)内部原理
  6. 巡查准确率怎么算_【达睿原创】需求预测准确率,你怎么看 ?
  7. postgresql查看死锁及解决方法
  8. 苹果Mac全能视频播放器:Playr
  9. docker安装cboard
  10. ABBYY FineReader添加盖章戳记
  11. 使用 Sublime 比较文档差异
  12. 最小二乘法线性拟合介绍以及matlab实现
  13. 利用List集合实现简单的斗地主
  14. Pipeline快速入门
  15. 理想主义者与现实主义者的差别
  16. 鼠标按住后拖动StringGrid
  17. 题9.5:有10个学生,每个学生的数据包括学号、姓名、3门课程的成绩,从键盘输人10个 学生数据,要求输出3门课程总平均成绩,以及最高分的学生的数据(包括学号、姓 名、3门课程成绩、平均分数)。
  18. 查看Linux下的文件
  19. Microsoft Dynamics CRM Javascript定制表单左边导航栏
  20. 苹果电脑怎么查保修期?

热门文章

  1. 中国移动 云MAS平台HTTP2.1(HTTP版)发送普通短信
  2. 【微积分的本质|笔记】隐函数求导的意义与理解
  3. 第二次练车,练了一天倒库
  4. 面试培训机构里的教师时,一分钟的自我介绍和五分钟的试讲如何安排?需要注意什么?
  5. 每日学习-Java基础(十)接口和继承10(内部类)
  6. html a href 文件下载 IE直接打开 内容乱码
  7. 【毕业设计_课程设计】基于python的微信公众平台机器人的设计与实现
  8. 外卖优惠券返利系统外卖返利公众号搭建cps系统小程序SaaS源码
  9. 内存诊断工程搭建及demo测试
  10. mysql:设有一数据库,包括四个表:学生表(Student)、课程表(Course)、成绩表(Score)以及教师信息表(Teacher)。四个表的结构分别如表1-1的表(一)表(四)所示