11、vue-路由
1、路由:
官方提供一个插件,构建单页面应用,主要实现得功能页面得切换、组件得跳转
2、vue中得路由:vue-router包,如果是脚手架进行搭建得,那么是不需要安装vue-router这个包得,因为里边已经配置安装好了
3、scr中得router文件中的index.js就是直接放路由得文件,所有的路由配置全部都是再这个文件中进行配置的,用的话实在组件中进行使用的
4、不管是使用组件也好,还是使用路由也好,都是需要创建一个组件或者是路由实例的
都需要使用new来完成
import Router from 'vue-router' //引入路由构造器
Vue.use(Router)
export default new Router() //路由实例
5、路由的原理:
根据url的路径变化,从而获取显示对应的组件
通过改变url,再不更新页面的情况下,更新页面中视图
6、vue中的路由实现:
hash模式:根据的是#后的值进行判断的,再读取的时候使用的是window.location.hash进行读取的
特点:hash是再url中的,但是不被包含在http的请求中,hash不会重新加载页面
http://www.xxx.com/#/test(默认是hash模式的)
history模式:把#去掉了,直接再后边显示的是/,再请求的时候是一起进行请求的,但是一般如果要使用的是history模式,那么必要要保证前端
URL和向后台发起的URL一致才行,只有再这种情况下才能请求到数据,否则返回的是404:http://www.xxx.com/test
mode:'history'(有的浏览器是不支持的)
7、使用路由步骤:
现在router配置文件中进行配置
然后再在入口文件中引入路由,其他组件才能使用
使用router-link-->a标签
to:跳转得路径,和path中定义的内容是一致的
name进行跳转,{name:''}
使用router-view标签给vue组件提供跳转的容器
8、如果有二级路由的话:
需要使用children在index.js文件中进行配置的
9、子路由在哪个路径下边,那么我们就需要把router-view放在哪个组件中,否则的话这个子路由是没有办法显示出来的
10、命名视图
一个路由显示多个组件:
components,同时告诉浏览器,哪个组件显示在哪个view中,使用的是name属性来实现的
案例:
// index.js -router import Vue from 'vue'
import Router from 'vue-router'
import Home from '@/components/Home'
import About from '@/components/About'
import Nava from '@/components/nava'
import Product from '@/components/product'
import Footer from '@/components/Footera'
import Contenta from '@/components/contenta'
Vue.use(Router) export default new Router({
mode: 'history',
routes: [
{
path: '/',
name: 'Home',
components: {
default:Home,
contenta:Contenta, //命名视图
footer:Footer
}
}, {
path: '/about',
name: 'About',
component: About,
children:[ //子组件路由
{
path:'/about/nava',
name:"nava",
component:Nava
},{
path:'/about/product',
name:"product",
component:Product
}
]
}
]
})
这是App父页面
<template>
<div id='app'>
<ul>
<!-- <li><router-link to="/">首页</router-link></li>
<li><router-link to="/about">abuot</router-link></li> --> //第一种方法
<li><router-link :to="{name:'Home'}">首页</router-link></li> //第二种 :to=“{}”
<li v-navDown><router-link :to="{name:'About'}">abuot</router-link>
<ul>
<li>
<router-link to="/about/nava">NAva</router-link> // 子路由
</li>
<li> <router-link to="/about/product">公司产品</router-link></li> //子路由
</ul>
</li>
</ul>
<router-view name="default"></router-view> //命名视图
<router-view name="contenta"></router-view>
<router-view name="footer"></router-view> </div>
</template> <script>
import $ from 'jquery'
export default {
name: 'App',
data () {
return { }
},
directives:{
'navDown':{
inserted (el) {
el.addEventListener('mouseenter',function(){
$(el).children('ul').slideDown()
})
el.addEventListener('mouseleave',function(){
$(el).children('ul').slideUp()
})
}
}
} } </script> <style>
.test{
color:skyblue;
}
li{
width: 500px;
height: 20px;
background: pink;
}
li ul{
display: none;
}
</style>
//显示子页面
<template>
<div>我是about
<router-view></router-view> //直接显示子页面
</div>
</template>
11、vue-路由的更多相关文章
- react router @4 和 vue路由 详解(全)
react router @4 和 vue路由 本文大纲: 1.vue路由基础和使用 2.react-router @4用法 3.什么是包容性路由?什么是排他性路由? 4.react路由有两个重要的属 ...
- 详解vue 路由跳转四种方式 (带参数)
详解vue 路由跳转四种方式 (带参数):https://www.jb51.net/article/160401.htm 1. router-link ? 1 2 3 4 5 6 7 8 9 10 ...
- Vue路由实现之通过URL中的hash(#号)来实现不同页面之间的切换(图表展示、案例分析、附源码详解)
前言 本篇随笔主要写了Vue框架中路由的基本概念.路由对象属性.vue-router插件的基本使用效果展示.案例分析.原理图解.附源码地址获取. 作为自己对Vue路由进行页面跳转效果知识的总结与笔记. ...
- Vue 路由的简单使用(命名路由、query路由传参、params路由传参)
1 # Vue 路由 2 # 1.理解:一个路由(toute)就是一组映射关系(key-value),多个路由需要路由器(router)进行管理 3 # 2.前端路由:key是路径,value是组件 ...
- Vue路由vue-router
前面的话 在Web开发中,路由是指根据URL分配到对应的处理程序.对于大多数单页面应用,都推荐使用官方支持的vue-router.Vue-router通过管理URL,实现URL和组件的对应,以及通过U ...
- 攻克vue路由
先下手 路由是个好功能,但是每次都感觉没法开始下手,愣愣的看半天官方文档,所以做个快速开始教程. 首先先搭好HTML文件结构: <!--link和view在一个父元素下--> <di ...
- Vue路由学习心得
GoodBoy and GoodGirl~进来了就看完点个赞再离开,写了这么多也不容易的~ 一.介绍 1.概念:路由其实就是指向的意思,当我们点击home按钮时,页面中就要显示home的内容,点击l ...
- VUE路由新页面打开的方法总结
平常做单页面的场景比较多,所以大部分的业务是在同一个页面进行跳转.要通过VUE路由使用新页面打开且传递参数,可以采用以下两个方法: 1.router-link的target <router-li ...
- vue路由参数变化刷新数据
当路由到某个组件时,由于组件会复用,所以生命周期函数不会再次执行, 如果这个组件是模板组件,靠传入不同数据来显示的.那么,可能会发生参数变化了但页面数据却不变化. 问题 假如有个组件 info.vue ...
- 10.3 Vue 路由系统
Vue 路由系统 简单示例 main.js import Vue from 'vue' import App from './App.vue' //https://router.vuejs.or ...
随机推荐
- jpype2
# -*- coding: utf-8 -*-# @Time : 2020/5/21 0:04# 从环境变量获取jvm虚拟机安装路径,若为None则获取默认路径import os import jpy ...
- 微软Azure IoT驱动数字化变革线上分享会(6月4号)
微软Azure IoT驱动数字化变革线上分享会(6月4号) 微软作为全球范围内IoT领域的领军者,以微软智能云Azure为基础和核心,推动包括物联网.机器学习.微服务.人工智能等在内的新技术的发展 ...
- webpack-dev-server 使用 react-router 启用 browserhistory 采坑记
问题的产生 今天下午请假,忙完手头事之后,在家实在无聊,想着从0开始搭建一个 react 的项目.webpack 基本配置之前研究过,没什么大问题.谁想,在 react-router 的配置时出现了个 ...
- 基于Hadoop不同版本搭建hive集群(附配置文件)
本教程采用了两种方案 一种是hive-1.21版本,hadoop版本为hadoop2.6.5 还有一种是主要讲基于hadoop3.x hive的搭建 先来第一种 一.本地方式(内嵌derby) 步骤 ...
- Matlab矩阵学习二 矩阵的修改
Matlab矩阵的修改 一.元素修改 (1).矩阵扩充 (2)矩阵删除某行或某列 删除某行:A(m,:)=[] %删除A矩阵的第m行 删除某列: A(:,n)=[] %删除A矩阵的第n列 ...
- 2020年,哪一款远程桌面(VPS管理器)最值得你期待
上周,我得知到,iis7远程桌面版本又更新的消息.进入该网站一看,果然如此. 通道:IIS7远程桌面V2.0.1 版本 最新程序截图如下,和老版本相比,果然又高大上了很多:
- 关于替换“c2a0”十六进制字符的方法
一.背景:在爬取网络小说生成的文件中,发现有些空格没法替换,使用十六进制编辑器查看,发现这些空格字符的十六进制值是“c2a0”,其来源是网页控制的特殊字符,这是一个叫做Non-breaking spa ...
- 结合 AOP 轻松处理事件发布处理日志
结合 AOP 轻松处理事件发布处理日志 Intro 前段时间,实现了 EventBus 以及 EventQueue 基于 Event 的事件处理,但是没有做日志(EventLog)相关的部分,原本想增 ...
- Java实现 第十一届 蓝桥杯 (高职专科组)省内模拟赛
有错误的或者有问题的欢迎评论 十六进制数1949对应的十进制数 19000互质的数的个数 70044与113148的最大公约数 第十层的二叉树 洁净数 递增序列 最大的元素距离 元音字母辅音字母的数量 ...
- Java实现 蓝桥杯 算法训练 前缀表达式
算法训练 前缀表达式 时间限制:1.0s 内存限制:512.0MB 问题描述 编写一个程序,以字符串方式输入一个前缀表达式,然后计算它的值.输入格式为:"运算符 对象1 对象2", ...