Vue-router

  1. 安装
npm install vue-router --save-dev

vue-cli中已经选择安装了vue-router,那这里不需要重复安装了

  1. 解读route

路径```src/router/index.js``


import Vue from 'vue' //引入Vue
import Router from 'vue-router' //引入vue-router
import HelloWorld from '@/components/HelloWorld' //引入根目录下的HelloWorld.vue组件 Vue.use(Router) //Vue全局使用Router export default new Router({
routes: [ //配置路由,这里是个数组
{ //每一个链接都是一个对象
path: '/', //链接路径
name: 'HelloWorld', //路由名称,
component: HelloWorld //对应的组件模板
}
]
})
<router-link to="/">首页</router-link>

  1. 配置子路由

import Vue from 'vue' //引入Vue
import Router from 'vue-router' //引入vue-router
import HelloWorld from '@/components/HelloWorld' //引入根目录下的HelloWorld.vue组件
import Hi from '@/components/Hi'
import Hi1 from '@/components/Hi1'
import Hi2 from '@/components/Hi2' Vue.use(Router) //Vue全局使用Router export default new Router({
routes: [ //配置路由,这里是个数组
{ //每一个链接都是一个对象
path: '/', //链接路径
name: 'HelloWorld', //路由名称,
component: HelloWorld //对应的组件模板
},
{
path: '/hi',
name: 'Hi',
component: Hi,
children: [
{ path: '/', name: 'hi', component: Hi },
{ path: 'hi1', name: 'hi1', component: Hi1 },
{ path: 'hi2', name: 'hi2', component: Hi2 }
]
}
]
})
  1. 参数传递
  • 用name传递参数
routes: [ //配置路由,这里是个数组
{ //每一个链接都是一个对象
path: '/', //链接路径
name: 'HelloWorld', //路由名称,
component: HelloWorld //对应的组件模板
}]
<p>{{$route.name}}</p>
  • 通过 标签中的to传参
<router-link :to="{name:xxx,params:{key:value}}">valueString</router-link>
<p>{{$route.params.username}}</p>
  • 利用url传递参数

    • :冒号的形式传递参数

      {
      path: '/params/:newsId/:newsTitle',
      name: 'Params',
      component:Params
      }
      <!-- 传参 -->
      <router-link to="/params/aaa/bbb">Params</router-link> <!-- 接收参数 -->
      <div>
      <p>新闻ID:{{$route.params.newsId}}</p>
      <p>新闻标题:{{$route.params.newsTitle}}</p>
      </div>
    • 正则表达式在URL传值中的应用

    path:'/params/:newsId(\\d+)/:newsTitle', //newsId 限制数字
  1. redirect重定向

  2. alias别名

  • redirect:直接改变了url的值,把url变成了真实的path路径。

  • alias:URL路径没有别改变,这种情况更友好,让用户知道自己访问的路径,只是改变了中的内容

  1. transition过渡动画
<transition name="fade">
<router-view/>
</transition>

组件过渡过程中,会有四个CSS类名进行切换,这四个类名与transition的name属性有关,比如name=”fade”,会有如下四个CSS类名:

  • fade-enter

    进入过渡的开始状态,元素被插入时生效,只应用一帧后立刻删除。

  • fade-enter-active

    进入过渡的结束状态,元素被插入时就生效,在过渡过程完成后移除。

  • fade-leave

    离开过渡的开始状态,元素被删除时触发,只应用一帧后立刻删除。

  • fade-leave-active

    离开过渡的结束状态,元素被删除时生效,离开过渡完成后被删除。

.fade-enter {
opacity:0;
}
.fade-leave{
opacity:1;
}
.fade-enter-active{
transition:opacity .5s;
}
.fade-leave-active{
opacity:0;
transition:opacity .5s;
}
  1. mode模式
  • histroy

    url没有#号,浏览历史记录栈的API实现

  • hash

    默认,监听location对象hash值变化事件来实现window.onhashchange

  1. 路由钩子函数

    • beforeEnter 写在路由文件中,在进入此路由配置时

      {
      path: '/params/:newsId(\\d+)/:newsTitle',
      name: 'Params',
      component: Params,
      beforeEnter:(to,from,next)=>{
      console.log('我进入了params模板');
      console.log(to);
      console.log(from);
      next();
      }
      }
    • beforeRouteEnter 写在模板中,在路由进入前

    • beforeRouteLeave 写在模板中,在路由离开前


      export default {
      data() {
      return {
      msg: "params pages"
      };
      },
      beforeRouteEnter(to, from, next) {
      console.log("准备进入路由模板");
      next();
      },
      beforeRouteLeave(to, from, next) {
      console.log("准备离开路由模板");
      next();
      }
      };
  2. 编程式导航

router.go(-1) //代表着后退,我们可以让我们的导航进行后退,并且我们的地址栏也是有所变化的。

router.go(1) //前进

this.$router.push('/xxx')//跳转

【vue】Vue-router的更多相关文章

  1. 【可视化】Vue基础

    作者 | Jeskson 来源 | 达达前端小酒馆 Vue简介 Vue框架,框架的作者,尤雨溪,组件化,快速开发的特点. 生命周期 beforeCreate:组件刚刚被创建 created:组件创建完 ...

  2. 【Vue】Vue的依赖追踪系统 ——搞懂methods watch和compute

    从作用机制和性质上看待methods,watch和computed的关系 <他三个是啥子关系呢?> 首先要说,methods,watch和computed都是以函数为基础的,但各自却都不同 ...

  3. 【Vue】Vue中的父子组件通讯以及使用sync同步父子组件数据

    前言: 之前写过一篇文章<在不同场景下Vue组件间的数据交流>,但现在来看,其中关于“父子组件通信”的介绍仍有诸多缺漏或者不当之处, 正好这几天学习了关于用sync修饰符做父子组件数据双向 ...

  4. 【1】vue/cli 3.0 脚手架 及cube-ui 安装

    安装 Vue CLI 需要 Node.js 8.9 或更高版本 (推荐 8.11.0+).你可以使用 nvm 或 nvm-windows在同一台电脑中管理多个 Node 版本. 检查node版本: $ ...

  5. 【vue】vue前端项目结构

    [一]项目结构 [二]项目结构释意 目录/文件 说明 build 项目构建(webpack)相关代码 config 配置目录,包括端口号等.我们初学可以使用默认的. node_modules npm ...

  6. 【转载】Vue项目中的文件/文件夹命名规范

    文件或文件夹的命名遵循以下原则: index.js 或者 index.vue,统一使用小写字母开头的(kebab-case)命名规范 属于组件或类的,统一使用大写字母开头的(PascalCase)命名 ...

  7. 【转】Vue.js:轻量高效的前端组件化方案

    摘要:Vue.js通过简洁的API提供高效的数据绑定和灵活的组件系统.在前端纷繁复杂的生态中,Vue.js有幸受到一定程度的关注,目前在GitHub上已经有5000+的star.本文将从各方面对Vue ...

  8. 【06】Vue 之 组件化开发

    组件其实就是一个拥有样式.动画.js逻辑.HTML结构的综合块.前端组件化确实让大的前端团队更高效的开发前端项目.而作为前端比较流行的框架之一,Vue的组件和也做的非常彻底,而且有自己的特色.尤其是她 ...

  9. 【05】Vue 之 实例详解与生命周期

    Vue的实例是Vue框架的入口,其实也就是前端的ViewModel,它包含了页面中的业务逻辑处理.数据模型等,当然它也有自己的一系列的生命周期的事件钩子,辅助我们进行对整个Vue实例生成.编译.挂着. ...

  10. Vue学习笔记【23】——Vue组件(组件的定义)

    定义Vue组件 什么是组件: 组件的出现,就是为了拆分Vue实例的代码量的,能够让我们以不同的组件,来划分不同的功能模块,将来我们需要什么样的功能,就可以去调用对应的组件即可: 组件化和模块化的不同: ...

随机推荐

  1. javaSE学习一

    java基础 java是一种强类型语言:要求变量的使用要严格符合规定,所有变量都必须先定义后才能使用. java的数据类型有两大类:基本数据类型和引用类型(类.接口.数组) 八大基本数据类型: 1.整 ...

  2. Spanve:一种检测大规模空间转录组学数据中空间变异基因的有效统计方法

    文章题目 Spanve: an Effective Statistical Method to Detect Spatially Variable Genes in Large-scale Spati ...

  3. 【Python】【算法】【排序】用Python实现排序的三种算法

    class SortTest: def __init__(self): pass # 冒泡排序 def BubbleSort(self, value): if isinstance(value, li ...

  4. echarts:双y轴图表刻度均匀分布问题

    今天分享一个小问题,内容不多. 双y轴图表中,为了图表的美观,经常会隐藏一侧的y轴刻度线,仅显示一侧的刻度线.那么问题就来了,两个y轴的数据数值大小不同,常常会导致刻度线的刻度分布不均匀,该如何解决呢 ...

  5. Java语言打印空心菱形

    打印空心菱形如果一开始觉得比较困难的话,那么不妨分成几个步骤走完成菱形的打印. 1.先打印一个直角三角形(都是由星星组成的) 代码如下: import java.util.Scanner;//导入Sc ...

  6. 实现接口开启线程(实现Runnable接口)

    步骤 定义类实现Runnable接口 重写run()方法 在测试类创建子类对象 创建线程对象把子类对象作为参数传入构造方法 用线程对象调用start()方法开启线程 //1.类实现Runnable接口 ...

  7. js中的base64转化

    创建一个base64.js文件,将以下代码粘贴进去 var Base64= { _keyStr:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrst ...

  8. 物理核与逻辑核-转 perf

    Linux和Windows 物理CPU.物理核.逻辑核--区别.关系和查看  cat /proc/cpuinfo命令部分输出信息的含义 physical id 物理封装的处理器的idprocessor ...

  9. SSD1306 屏幕使用-Micropython

    1.I2C总线是什么? I2C:俗称集成电路总线,是一种简单.双向二线制同步串行通信总线,使用多主从架构.它只需要两根线即可在连接于总线上的器件之间传送信息. 主器件用于启动总线传送数据,并产生时钟以 ...

  10. 第二周day5

    第二周day5,星期五 所花时间:1h 代码量: 搏客量:1 了解到的知识点:学习了安卓的帧布局表格布局和约束布局的相关知识,并完成了对应的习题.