什么是路由

  1. **后端路由:**对于普通的网站,所有的超链接都是URL地址,所有的URL地址都对应服务器上对应的资源;

  2. **前端路由:**对于单页面应用程序来说,主要通过URL中的hash(#号)来实现不同页面之间的切换,同时,hash有一个特点:HTTP请求中不会包含hash相关的内容;所以,单页面程序中的页面跳转主要用hash实现;

  3. 在单页面应用程序中,这种通过hash改变来切换页面的方式,称作前端路由(区别于后端路由);

URL中的hash(井号)

在 vue 中使用 vue-router

  1. 导入 vue-router 组件类库:
<!-- 1. 导入 vue-router 组件类库 --><script src="./lib/vue-router-2.7.0.js"></script>
  1. 使用 router-link 组件来导航
<!-- 2. 使用 router-link 组件来导航 -->
<router-link to="/login">登录</router-link>
<router-link to="/register">注册</router-link>
  1. 使用 router-view 组件来显示匹配到的组件
<!-- 3. 使用 router-view 组件来显示匹配到的组件 -->
<router-view></router-view>
  1. 创建使用Vue.extend创建组件
    // 4.1 使用 Vue.extend 来创建登录组件var login = Vue.extend({template: '<h1>登录组件</h1>'});// 4.2 使用 Vue.extend 来创建注册组件var register = Vue.extend({template: '<h1>注册组件</h1>'});
  1. 创建一个路由 router 实例,通过 routers 属性来定义路由匹配规则
// 5. 创建一个路由 router 实例,通过 routers 属性来定义路由匹配规则var router = new VueRouter({routes: [{ path: '/login', component: login },{ path: '/register', component: register }]});
  1. 使用 router 属性来使用路由规则
// 6. 创建 Vue 实例,得到 ViewModelvar vm = new Vue({el: '#app',router: router // 使用 router 属性来使用路由规则});

路由基本使用

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>Document</title><script src="./lib/vue-2.4.0.js"></script><!-- 1. 安装 vue-router 路由模块 --><script src="./lib/vue-router-3.0.1.js"></script><style>.router-link-active,.myactive {color: red;font-weight: 800;font-style: italic;font-size: 80px;text-decoration: underline;background-color: green;}.v-enter,.v-leave-to {opacity: 0;transform: translateX(140px);}.v-enter-active,.v-leave-active {transition: all 0.5s ease;}</style>
</head><body><div id="app"><!-- <a href="#/login">登录</a> --><!-- <a href="#/register">注册</a> --><!-- router-link 默认渲染为一个a 标签 --><router-link to="/login" tag="span">登录</router-link><router-link to="/register">注册</router-link><!-- 这是 vue-router 提供的元素,专门用来 当作占位符的,将来,路由规则,匹配到的组件,就会展示到这个 router-view 中去 --><!-- 所以: 我们可以把 router-view 认为是一个占位符 --><transition mode="out-in"><router-view></router-view></transition></div><script>// 组件的模板对象var login = {template: '<h1>登录组件</h1>'}var register = {template: '<h1>注册组件</h1>'}/*  Vue.component('login', {template: '<h1>登录组件</h1>'}) */// 2. 创建一个路由对象, 当 导入 vue-router 包之后,在 window 全局对象中,就有了一个 路由的构造函数,叫做 VueRouter// 在 new 路由对象的时候,可以为 构造函数,传递一个配置对象var routerObj = new VueRouter({// route // 这个配置对象中的 route 表示 【路由匹配规则】 的意思routes: [ // 路由匹配规则 // 每个路由规则,都是一个对象,这个规则对象,身上,有两个必须的属性://  属性1 是 path, 表示监听 哪个路由链接地址;//  属性2 是 component, 表示,如果 路由是前面匹配到的 path ,则展示 component 属性对应的那个组件// 注意: component 的属性值,必须是一个 组件的模板对象, 不能是 组件的引用名称;// { path: '/', component: login },{ path: '/', redirect: '/login' }, // 这里的 redirect 和 Node 中的 redirect 完全是两码事{ path: '/login', component: login },{ path: '/register', component: register }],linkActiveClass: 'myactive'})// 创建 Vue 实例,得到 ViewModelvar vm = new Vue({el: '#app',data: {},methods: {},router: routerObj // 将路由规则对象,注册到 vm 实例上,用来监听 URL 地址的变化,然后展示对应的组件});</script>
</body></html>

Vue学习记录-路由相关推荐

  1. Vue学习之路由(Router)

    Vue学习之 路由(Router) 文章目录 Vue学习之 路由(Router) 一.路由是什么? 二.Vue Router的安装 1.直接下载/CDN 2.NPM安装 三.路由的基础使用 1.定义路 ...

  2. vue学习记录-05 事件监听

    vue学习记录-05 事件监听 这篇文章是根据codewhy老师在b站的视频进行的学习记录 文章目录 vue学习记录-05 事件监听 一.v-on的基本使用 二.v-on的参数问题 1.方法不需要参数 ...

  3. Vue学习记录07--vue路由的使用

    引入vue路由: cnpm install vue-router@3.1.3 --save-dev 不要引入版本太高的路由!!!否则会出问题:项目运行后页面空白一片 (https://blog.csd ...

  4. vue学习记录: 遇到过的问题记录

    项目构建 vue-cli 安装中找不到vue命令 这是在ubuntu系统中遇到的,全局安装后可以 npm install -g vue-cli Vue 组件间通信 父子 props/event $pa ...

  5. chrome vue插件_「Vue学习记录一」开发环境准备

    1.开发工具 - VS Code ❝ 选择 VS Code 是因为这是一款很容易上手的工具,在 VS Code 中找到的每个功能都完成一项出色的工作,构建了一些简单的功能集,包括语法高亮.智能补全.集 ...

  6. Vue学习记录三 --- vue的项目实战

    一.常规项目配置安装: 1.安装vue-router路由: cmd下在当前项目目录下执行 : npm install vue-router --save-dev 如果因为依赖安装失败,则执行 : np ...

  7. vue学习笔记——路由

    1 路由配置 在vue.config中配置,则在代码中可以使用 @来表示src目录下 import aa from '@/aa/index.js' 2 单页面可以懒加载 3 创建动态路由 路由中定义: ...

  8. Vue学习记录 (ref,生命周期,组件,router)

    ref="名称":注册引用信息 this.$ref.名称:获取对象(此为操作dom节点) 计算属性:computed 在差值表达式中调用此函数会直接返回计算结果,而不是函数本身 当 ...

  9. vue学习 32路由精讲之二级路由和三级路由

    分级时,默认打开指定下级的路由,使用redirect属性,其值为子级路由的路径path. 子级使用属性children: 值为数组,数组中每个元素都是一个路由对象 二级路由 在main.js中配置路由 ...

最新文章

  1. Racktables(一)的资产管理软件安装配置
  2. 用Python玩转微信的正确姿势!
  3. SQL存储过程的导入导出
  4. Java第二次作业第一题
  5. java入门基础重要知识必考考点
  6. c语言宏定义技巧和用法,关于C语言宏定义的技巧:'#'和'##'
  7. python 读取csv带表头_python读csv文件时指定行为表头或无表头的方法
  8. Keras学习---MLP和CNN模型建立篇
  9. SpringBoot参数传递bean自动填充
  10. 聊聊我的 ACL2020 论文
  11. 用Java打印棱形的思路,java打印菱形思路
  12. 《HTTP权威指南》思维导图一览全书
  13. 联想教育应用使用说明(7.6版本)——第5章 常见的问题与解答
  14. rsem比对_基于二代测序的肿瘤新生抗原检测方法、装置和存储介质与流程
  15. http-equiv
  16. 【自制壁纸生成器】2022新年壁纸领取,换一张手机壁纸,迎接2022叭~
  17. 永洪BI携手华为云FusionInsight,让数据分析提效20倍
  18. python使用aip库识别图片中文字
  19. NSIS (NullSoft Scriptable Install System)使用指北(超详细)
  20. SwiftUI iOS 精品完成项目之宠物展示与领养App MVVM(教程含源码)

热门文章

  1. 互联网日报 | 腾讯地图上线聚合打车服务;瑞幸咖啡等公司被罚6100万元;中通快递下周二香港上市...
  2. 数据项组成数据元素,数据元素组成数据
  3. Flutter 笔记 | Flutter 布局组件
  4. TensorFlow学习笔记——(11)循环神经网络
  5. xampp 64位 php5.2,XAMPP 64位
  6. ASP.NET 三层架构技术 人力资源管理系统项目HR (深入WebServic
  7. 如何将代码插入到Word文档
  8. 说说wps jsa的ListBox控件的数组写入方法
  9. windows命令大全_建议收藏!这是最全的Windows快捷键使用指南
  10. 运算(与运算)和|运算(或运算)