首先还是先创项目

然后选择vue-router 再创建

再敲代码学习前,我们先了解什么是路由?

路由有一个非常重要的概念就是路由表:

本质就是一个映射表,决定数据的指向。

我们生活中常常听到的路由器,它就是两种机制:路由和转送

·路由是决定数据包从来源到目的地的路径

·转送将输入端的数据转移到合适的输出端

我的理解就是先有个路径然后通过这个路径转送数据√√√√(大佬可以纠正我)

======================================================

项目http://localhost:8080/#/跑起来后

我们就可以了解vue-router url的变化是怎么实现让页面么有刷新的:

有两种方式:

一、通过hash值的变化

location.hash ='' home''

但是url会有个# eg:http://localhost:8080/#/home

二、通过history.pushState

为了没有#就可以用这个

history.pushState({},'','home')

pushState使用最多在于数据结构的栈结构

我的理解:相当于你压入一个地址值,先进后出,后加的就是页面显示的

三、history.replaceState()

就是替换 没法实现网页的前进后退。

四、history.go()

就是go(n)前进n次

负数就是后退n次

history.forward()==history.go(1)

============================================================

现在再component文件中创建两个vue文件一个Home、一个About;

然后为了使这两个组件起作用就在router 文件的route.js文件中配置路由;

import Vue from 'vue'
import Router from 'vue-router'
import Home from '../components/Home.vue'
import About from '../components/About.vue' //安装router插件 vue.use(插件)
Vue.use(Router) //创建VueRouter对象
const routes = [ {
path: '/home',
component: Home
},
{
path: '/about',
component: About
}
] export default new Router({
routes
})

非常的简单!!!!

然后就是让他们显示出来了

在App.vue中写个按钮 和 显示的位置占位router-view

代码如下:

<template>
<div id="app">
<router-link to="/home">首页</router-link>
<router-link to="/about">关于</router-link>
<router-view></router-view>
</div>
</template> <script>
export default {
name: 'App'
}
</script> <style>
</style>

重定向:

{
path: '/',
redirect: '/home'
},

取消url路由的# 在router对象中设置模式 mode:‘history’;

//创建VueRouter对象
const router = new Router({
routes,
mode: 'history'
})

通过代码实现跳转 :

<template>
<div id="app">
<button @click="homeClick">首页</button>
<button @click="aboutClick">关于</button>
<!-- <router-link to="/home" tag="button">首页</router-link>
<router-link to="/about" tag="button" >关于</router-link> -->
<router-view></router-view>
</div>
</template> <script>
export default {
name: 'App',
methods: {
homeClick() {
this.$router.push('/home')
},
aboutClick() {
this.$router.push('/about')
}
}
}
</script> <style>
</style>

今天就到这里吧,有点晚了!!!!!

Vue-Router 详细解析学习的更多相关文章

  1. Vue Router详细教程

    1.什么是路由 1.1路由简介 说起路由你想起了什么?路由是一个网络工程里面的术语. 路由(routing)就是通过互联的网络把信息从源地址传输到目的地址的活动. --- 维基百科 额,啥玩意? 没听 ...

  2. react 详细解析学习笔记

    React的介绍: React来自于Facebook公司的开源项目 React 可以开发单页面应用       spa(单页面应用) react 组件化模块化  开发模式 React通过对DOM的模拟 ...

  3. 打通前后端全栈开发node+vue进阶【课程学习系统项目实战详细讲解】(3):用户添加/修改/删除 vue表格组件 vue分页组件

    第三章 建议学习时间8小时      总项目预计10章 学习方式:详细阅读,并手动实现相关代码(如果没有node和vue基础,请学习前面的vue和node基础博客[共10章] 演示地址:后台:demo ...

  4. node+vue进阶【课程学习系统项目实战详细讲解】打通前后端全栈开发(1):创建项目,完成登录功能

    第一章 建议学习时间8小时·分两次学习      总项目预计10章 学习方式:详细阅读,并手动实现相关代码(如果没有node和vue基础,请学习前面的vue和node基础博客[共10章]) 视频教程地 ...

  5. Vue Router的导航解析过程

    在我没读官方的vue router文档之前,我怎么也没想到路由的解析过程竟然有12步. 12步如下: 导航被触发. 在失活的组件里调用离开守卫beforeRouteLeave . 调用全局的 befo ...

  6. Vue Router 路由守卫:完整的导航解析流程

    完整的导航解析流程 1 导航被触发. 2 在失活的组件里调用离开守卫. 3 调用全局的 beforeEach 守卫. 4 在重用的组件里调用 beforeRouteUpdate 守卫 (2.2+). ...

  7. 「进阶篇」Vue Router 核心原理解析

    前言 此篇为进阶篇,希望读者有 Vue.js,Vue Router 的使用经验,并对 Vue.js 核心原理有简单了解: 不会大篇幅手撕源码,会贴最核心的源码,对应的官方仓库源码地址会放到超上,可以配 ...

  8. Vue Router学习笔记

    前端的路由:一个地址对应一个组件 Vue Router中文文档 一.路由基本使用 第1步:导入Vue Router: <script src="https://unpkg.com/vu ...

  9. 前端MVC Vue2学习总结(八)——Vue Router路由、Vuex状态管理、Element-UI

    一.Vue Router路由 二.Vuex状态管理 三.Element-UI Element-UI是饿了么前端团队推出的一款基于Vue.js 2.0 的桌面端UI框架,手机端有对应框架是 Mint U ...

随机推荐

  1. Pun(PhotonUnityNetwork)

    介绍 Photon Unity Networking(首字母缩写 PUN)是一个 Unity 多人游戏插件包.它提供了身份验证选项.匹配,以及快速.可靠的通过我们的 Photon 后端实现的游戏内通信 ...

  2. 18、mysql读写分离实现的方法

    18.1.mysql读写分离实现的方法: 1.通过程序实现读写分离: php和java程序实现读写分离(性能,效率最佳,推荐); php和java程序都可以通过设置多个连接文件轻松实现对数据库的读写分 ...

  3. Linux基础 -03

    2.2.3 head-tail 命令 #------head #head pass #查看头部内容,默认前10行 #head -n5 pass #查看头部前5行,使用-n指定 #-------tail ...

  4. SpringBoot拦截器及源码分析

    1.拦截器是什么 java里的拦截器(Interceptor)是动态拦截Action调用的对象,它提供了一种机制可以使开发者在一个Action执行的前后执行一段代码,也可以在一个Action执行前阻止 ...

  5. 消息队列——kafka

    原文:再过半小时,你就能明白kafka的工作原理了 会出现什么情况呢? 1.为了这个女朋友,我请假回去拿(老板不批). 2.小哥一直在你楼下等(小哥还有其他的快递要送). 3.周末再送(显然等不及). ...

  6. Java:jar包与war包的差异

    一般将项目分为两层:服务层和表现层(视图层),通常我们把服务层打包成jar,而把视图层的包打成war包. 仔细对比可以发现: jar包中包含了你写程序的所有服务或者第三方类库,它通常是作为幕后工作者, ...

  7. C++ 11 多线程初探-std::memory_order

    std::memory_order(可译为内存序,访存顺序) 动态内存模型可理解为存储一致性模型,主要是从行为(behavioral)方面来看多个线程对同一个对象同时(读写)操作时(concurren ...

  8. 可搜索加密技术 - 学习笔记(二)- 预备知识:HMAC-SHA256函数

    由于在之后的算法中会用到HMAC-SHA256函数,这里先简单对其进行一个介绍. 一.HMAC算法 什么是HMAC算法? HMAC是密钥相关的哈希运算消息认证码(Hash-based Message ...

  9. 「AGC021E」Ball Eat Chameleons

    「AGC021E」Ball Eat Chameleons 考虑如何判定一个合法的颜色序列. 不妨设颜色序列中有 \(R\) 个红球,\(B\) 个蓝球,所以有 \(R+B=k\). 考虑分情况讨论: ...

  10. C语言:缓冲区

    缓冲区(Buffer)又称为缓存(Cache),是内存空间的一部分.也就是说,计算机在内存中预留了一定的存储空间,用来暂时保存输入或输出的数据,这部分预留的空间就叫做缓冲区(缓存).有时候,从键盘输入 ...