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 ...
随机推荐
- Qt编写自定义控件72-提示进度条
一.前言 我们在很多的安装包中,在安装过程中,经常可以在底部看到一个漂亮的进度条,上面悬浮着显示对应的进度,然后底部进度多种颜色渐变展示,Qt自带的进度条或者操作系统的进度条样式,不够炫,这次索性直接 ...
- 123457123456#5#----com.MC.HuaHuaGame866----前拼后广--babyDrawGame-mc555
com.MC.HuaHuaGame866----前拼后广--babyDrawGame-mc
- Sound (audio file) player in java - working source code example
转载自:http://ganeshtiwaridotcomdotnp.blogspot.com/2011/12/sound-audio-file-player-in-java-working.html ...
- mssqlserver修改表名,列名,添加表列,删除表列,修改表列类型
mssqlserver修改表名,列名,添加表列,删除表列,修改表列类型 ,代码肯定省事的呀 --添加表列 alter table test ) null; --删除表列 alter table tes ...
- Sed之大小写转换
使用sed进行大小写转换 大写转小写 echo "ABCD"|sed 's#[A-Z]#\l&#g' 小写转大写 echo "abcd"|sed 's# ...
- python2:输出百分比
pass_num=80execute_num=90pass_rate = "%.2f%%" % (float(pass_num)/float(executed_num)*100)p ...
- zookeeper的java api操作
zookeeper的java api操作 创建会话: Zookeeper(String connectString,int sessionTimeout,Watcher watcher) Zookee ...
- 封装transform函数(设置和获取transform的属性和属性值)
(function (w) { /** * 设置或者获取元素的transform属性值 * @param node 要设置的元素 * @param param 变换属性: translate\scal ...
- ubuntu 安装 typora
# or run: # sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys BA300B7755AFCFAE wget -qO ...
- 使用Nethunter(Kali黑客手机)wifite破解无线密码
简介: NetHunter是一个基于Kali Linux为Nexus设备构建的Android渗透测试平台,其中包括一些特殊和独特的功能. NetHunter支持无线802.11注入,一键MANA AP ...