Vue路由的使用和route-link router-view样式和动画的设置
什么是路由
后端路由:**对于普通的网站,所有的超链接都是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样式和动画的设置的更多相关文章
- vue路由中 Navigating to current location ("/router") is not allowed
报错原因:多次点击同一路由,导致路由被多次添加 解决方法: router/index中添加以下代码: //router/index.js Vue.use(VueRouter) //导入vue路由 co ...
- Vue路由模块化的实现方法
分享一个Vue路由模块化方法,简单实用,好用到飞起 路由模块化 1.router/index.js 配置路由 import Vue from 'vue' import VueRouter from ' ...
- react router @4 和 vue路由 详解(全)
react router @4 和 vue路由 本文大纲: 1.vue路由基础和使用 2.react-router @4用法 3.什么是包容性路由?什么是排他性路由? 4.react路由有两个重要的属 ...
- react router @4 和 vue路由 详解(八)vue路由守卫
完整版:https://www.cnblogs.com/yangyangxxb/p/10066650.html 13.vue路由守卫 a.beforeEach 全局守卫 (每个路由调用前都会触发,根据 ...
- react router @4 和 vue路由 详解(一)vue路由基础和使用
完整版:https://www.cnblogs.com/yangyangxxb/p/10066650.html 1.vue路由基础和使用 a.大概目录 我这里建了一个router文件夹,文件夹下有in ...
- 六、vue路由Vue Router
一.基本概念 route, routes, router 1, route,它是一条路由,由这个英文单词也可以看出来,它是单数, Home按钮 => home内容, 这是一条route, a ...
- 「vue基础」一篇浅显易懂的 Vue 路由使用指南( Vue Router 上)
大家好,今天的内容,我将和大家一起聊聊 Vue 路由相关的知识,如果你以前做过服务端相关的开发,那你一定会对程序的URL结构有所了解,我没记错的话也是路由映射的概念,需要进行配置. 其实前端这些框架的 ...
- vue路由登录拦截(vue router登录权限控制)
实现原理: 哪些路由需要验证需要在路由文件router/index.js中指定: { path: '/', component: Home, name: 'Home', iconCls: 'fa fa ...
- Dynamic Route Matching Vue路由(1)
Dynamic Route Matching 动态的 路由 匹配 Very often we will need to map routes with the given pattern to the ...
随机推荐
- 使用mysqlslap测试MySQL性能
之前介绍过MySQL的性能测试工具sysbench, 这次介绍一个mysql自带的比较简单的性能测试命令mysqlslap. 下面的指令模拟了1000个进程同事连接mysql,并执行100个查询操作, ...
- Nginx日志挂载目录为nfs文件服务器时开机无法自启动的问题解决
为了方便收集查看日志把nginx日志输出至nfs文件服务器,nfs文件服务器使用autofs自动挂载,nginx和autofs都使用systemctl设置了开机自启动. 但是在重启主机的时候nginx ...
- docker之容器日志输出与系统时间相差8小时解决办法
参考:https://blog.csdn.net/eumenides_/article/details/94719944 https://muguang.me/it/2658.html 使用doc ...
- popup demo
Django下实现: urls.py: from django.conf.urls import url from django.contrib import admin from app01 imp ...
- jenkins最新版下载安装
前提:安装配置 jetty 在线下载jetty# wget http://download.eclipse.org/jetty/8.1.17.v20150415/dist/jetty-distribu ...
- [转帖]PCIe 6.0 v0.3版本草案已完稿:2021年转正、x16带宽飙至128GB/s
PCIe 6.0 v0.3版本草案已完稿:2021年转正.x16带宽飙至128GB/s https://www.cnbeta.com/articles/tech/899389.htm 硬件发展突飞猛进 ...
- C++ 获取系统当前时间(日历时)
获取系统当前时间(日历时) //Linux & C++11 #include <chrono> #include <ctime> using namespace std ...
- go语言实现单链表
线性表包含两种存储方法:顺序存储结构和链式存储结构,其中顺序表的缺点是不便插入与删除数据. 单链表:每个结点包含两部分:数据域+指针域,上一个结点的指针指向下一结点,依次相连,形成链表.特别注意的是每 ...
- Java同C#的语法不同之处
Java同C#的语法不同之处... [注:转载而来但原出处不详:若是您原创请联系我]1,命名空间与包 C#为了把实现相似功能的类组织在一起,引入了命名空间的概念(namespace) Java中与此对 ...
- Android—网络请求
import java.io.ByteArrayOutputStream; import java.io.InputStream; import java.net.HttpURLConnection; ...