什么是路由

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

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

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

<!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>
<!-- 必须先导入Vue -->
<script src="./lib/vue-2.4.0.js"></script>
<!-- 在导入router包 -->
<script src="./lib/vue-router-3.0.1.js"></script>
</head>
<body>
<div id="app">
<!-- <a href="#/log">登录</a>
<a href="#/zhuce">注册</a> --> <!-- router-link 也是router提供的标签,用来监听URL 不用写#号,默认渲染为一个a 标签 -->
<router-link to="/log" tag="span">登录</router-link>
<router-link to="/zhuce">注册</router-link>
<!-- VueRouter提供的元素标签,用来切换路由组件的显示的 -->
<!-- 这是 vue-router 提供的元素,专门用来 当作占位符的,将来,路由规则,匹配到的组件,就会展示到这个 router-view 中去 -->
<!-- 所以: 我们可以把 router-view 认为是一个占位符 -->
<router-view></router-view>
</div> <script>
// 组件模板对象,以后定义组件都这么用 别使用template 那个不是组件模板对象
var log={
template:"<h1>登录界面</h1>"
}
var zhuce={
template:"<h1>注册界面</h1>"
} // 路由实例
var vuerouterobj=new VueRouter({
// route // 这个配置对象中的 route 表示 【路由匹配规则】 的意思
routes: [// 路由匹配规则
// 每个路由规则,都是一个对象,这个规则对象,身上,有两个必须的属性:
// 属性1 是 path, 表示监听 哪个路由链接地址;
// 属性2 是 component, 表示,如果 路由是前面匹配到的 path ,则展示 component 属性对应的那个组件
// 注意: component 的属性值,必须是一个 组件的模板对象, 不能是 组件的引用名称;
// { path: '/', component: login },
{path:'/',redirect:'/log'},// 这里的 redirect path是根路径的时候,页面重定向到登录界面
{path:'/log',component:log},
{path:'/zhuce',component:zhuce},
]
}) // Vue实例
var vm=new Vue({
el:'#app',
data:{},
methods: { }, // 引用路由实例
router:vuerouterobj // 将路由规则对象,注册到 vm 实例上,用来监听 URL 地址的变化,然后展示对应的组件
}) </script>
</body>
</html>

Vue-link 和vue-view 添加样式和动画

  

<!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>
<!-- 必须先导入Vue -->
<script src="./lib/vue-2.4.0.js"></script>
<!-- 在导入router包 -->
<script src="./lib/vue-router-3.0.1.js"></script>
</head>
<body> <style> /* 给route-link 元素添加样式 */
/* .router-link-active{
font-size: 30px;
font-weight: 800;
color: red;
} */ .mystyle{
font-size: 30px;
font-weight: 800;
color: red;
} .v-enter,.v-leave-to{
opacity: 0;
transform: translate(0,200px)
}
.v-enter-active,.v-leave-active{
transition: all .4s ease-in-out;
} </style>
<div id="app">
<!-- <a href="#/log">登录</a>
<a href="#/zhuce">注册</a> --> <!-- router-link 也是router提供的标签,用来监听URL 不用写#号,默认渲染为一个a 标签 -->
<router-link to="/log" tag="span">登录</router-link>
<router-link to="/zhuce">注册</router-link>
<!-- VueRouter提供的元素标签,用来切换路由组件的显示的 -->
<!-- 这是 vue-router 提供的元素,专门用来 当作占位符的,将来,路由规则,匹配到的组件,就会展示到这个 router-view 中去 -->
<!-- 所以: 我们可以把 router-view 认为是一个占位符 -->
<transition mode="out-in"> <!--给route-view 添加动画 必须要使用transition 标签包裹 并设置模式先出后进-->>
<router-view></router-view>
</transition> </div> <script>
// 组件模板对象,以后定义组件都这么用 别使用template 那个不是组件模板对象
var log={
template:"<h1>登录界面</h1>"
}
var zhuce={
template:"<h1>注册界面</h1>"
} // 路由实例
var vuerouterobj=new VueRouter({
// route // 这个配置对象中的 route 表示 【路由匹配规则】 的意思
routes: [// 路由匹配规则
// 每个路由规则,都是一个对象,这个规则对象,身上,有两个必须的属性:
// 属性1 是 path, 表示监听 哪个路由链接地址;
// 属性2 是 component, 表示,如果 路由是前面匹配到的 path ,则展示 component 属性对应的那个组件
// 注意: component 的属性值,必须是一个 组件的模板对象, 不能是 组件的引用名称;
// { path: '/', component: login },
{path:'/',redirect:'/log'},// 这里的 redirect path是根路径的时候,页面重定向到登录界面
{path:'/log',component:log},
{path:'/zhuce',component:zhuce},
],
// 使用router-link切换组件的时候,默认会给router-link添加上一个类为 router-link-active 一个类名
// 我们可以使用这个类名来添加样式,或者使用linkActiveClass 修改这个类名(可以修改bootstrapt的类型哦)
linkActiveClass:"mystyle"
}) // Vue实例
var vm=new Vue({
el:'#app',
data:{},
methods: { }, // 引用路由实例
router:vuerouterobj // 将路由规则对象,注册到 vm 实例上,用来监听 URL 地址的变化,然后展示对应的组件
}) </script>
</body>
</html>

Vue路由的使用和route-link router-view样式和动画的设置的更多相关文章

  1. vue路由中 Navigating to current location ("/router") is not allowed

    报错原因:多次点击同一路由,导致路由被多次添加 解决方法: router/index中添加以下代码: //router/index.js Vue.use(VueRouter) //导入vue路由 co ...

  2. Vue路由模块化的实现方法

    分享一个Vue路由模块化方法,简单实用,好用到飞起 路由模块化 1.router/index.js 配置路由 import Vue from 'vue' import VueRouter from ' ...

  3. react router @4 和 vue路由 详解(全)

    react router @4 和 vue路由 本文大纲: 1.vue路由基础和使用 2.react-router @4用法 3.什么是包容性路由?什么是排他性路由? 4.react路由有两个重要的属 ...

  4. react router @4 和 vue路由 详解(八)vue路由守卫

    完整版:https://www.cnblogs.com/yangyangxxb/p/10066650.html 13.vue路由守卫 a.beforeEach 全局守卫 (每个路由调用前都会触发,根据 ...

  5. react router @4 和 vue路由 详解(一)vue路由基础和使用

    完整版:https://www.cnblogs.com/yangyangxxb/p/10066650.html 1.vue路由基础和使用 a.大概目录 我这里建了一个router文件夹,文件夹下有in ...

  6. 六、vue路由Vue Router

    一.基本概念 route, routes, router 1, route,它是一条路由,由这个英文单词也可以看出来,它是单数, Home按钮  => home内容, 这是一条route,  a ...

  7. 「vue基础」一篇浅显易懂的 Vue 路由使用指南( Vue Router 上)

    大家好,今天的内容,我将和大家一起聊聊 Vue 路由相关的知识,如果你以前做过服务端相关的开发,那你一定会对程序的URL结构有所了解,我没记错的话也是路由映射的概念,需要进行配置. 其实前端这些框架的 ...

  8. vue路由登录拦截(vue router登录权限控制)

    实现原理: 哪些路由需要验证需要在路由文件router/index.js中指定: { path: '/', component: Home, name: 'Home', iconCls: 'fa fa ...

  9. Dynamic Route Matching Vue路由(1)

    Dynamic Route Matching 动态的 路由 匹配 Very often we will need to map routes with the given pattern to the ...

随机推荐

  1. 全面系统Python3入门+进阶-1-3 我为什么喜欢Python

    结束

  2. 【grafana报错】Singlestat "Error: Multiple Series Error"

    这个错误是因为grafana中的单值面板在同一个时刻读到了多个值.需要检查面板的json源码,检查其expr字段中的promql表达式是否会在同一时刻返回多个值. https://github.com ...

  3. RobotFramework: 获取当前时间戳

    robot中先导入DateTime库 #获取当前时间:2019-07-31 10:46:29.940 ${time} Get Current Date result_format=timestamp ...

  4. Windows 2016 服务器安全配置和加固

    最近一个项目需要使用Windows服务器,选择安装了最新版的Windows 2016,上一次使用Windows服务器还是Windows 2003系统,发现变化还是挺多的,依次记录下来以备后面查阅. 目 ...

  5. 【VS开发】如何判断客户端SOCKET已经断开连接?

    http://biancheng.dnbcw.info/linux/366100.html    最近在做一个服务器端程序,C/S结构.功能方面比较简单就是client端与server端建立连接,然后 ...

  6. java多线程实现多客户端socket通信

    一.服务端 package com.czhappy.hello.socket; import java.io.IOException; import java.net.InetAddress; imp ...

  7. models模型层

    ORM简介 查询数据层次图解:如果操作mysql,ORM是在pymysq之上又进行了一层封装 MVC或者MTV框架中包括一个重要的部分,就是ORM,它实现了数据模型与数据库的解耦,即数据模型的设计不需 ...

  8. java生成验证码结合springMVC

    在用户登录的时候,为了防止机器人攻击都会设置输入验证码,本篇文章就是介绍java如何生成验证码并使用在springMVC项目中的. 第一步:引入生成图片验证码的工具类 import java.awt. ...

  9. Web基础和servlet基础

    TomCat的目录结构 Bin:脚本目录(存放启动.关闭这些命令) Conf:存放配置文件的目录 Lib:存放jar包 Logs: 存放日志文件 Temp: 临时文件 Webapps: 项目发布目录 ...

  10. C++ 用 vector 生成三维数组,并计算行、列、高

    //Microsoft Visual Studio 2015 Enterprise //用vector生成三维数组,并计算行.列.高 #include <iostream> #includ ...