vue路由知识整理

vue路由知识整理

对于单页应用,官方提供了vue-router进行路由跳转的处理.我们已经可以通过组合组件来组成应用程序,当你要把 vue-router 添加进来,我们需要做的是,将组件(components)映射到路由(routes),然后告诉 vue-router 在哪里渲染它们。

参考文章

https://router.vuejs.org/zh-c...

动态配置路由

HTML

  <p><!-- query要用path来引入,params要用name来引入,故不能写为 :to="{path:'/login',params: {isLogin: true}} --><!-- 跳转路由时用this.$router: this.$router.push({name:"login",params:{isLogin:true}});this.$router.push({path: '/login', query: {isLogin : true}}); --><!-- 接收参数时用this.$route: this.$route.query.isLogin 和 this.$route.params.isLogin; --><router-link :to="{name:'login',params: {isLogin: true}}">亲,请登录</router-link><router-link :to="{name:'login',params: {isLogin: false}}">免费注册</router-link></p><!-- 路由出口, 路由匹配到的组件将渲染在这里 --><router-view></router-view>

route/index.js

import Vue from 'vue';
import Router from 'vue-router';
import login from 'pages/login/login.vue';
import home from 'pages/home/home.vue';Vue.use(Router);const router = new Router({routes: [{path: '/home',// 命名路由,通过一个名称来标识一个路由显得更方便一些,特别是在链接一个路由// 使用<router-link :to="{ name: 'main', params: { userId: 123 }}">User</router-link> 或者 router.push({ name: 'main', params: { userId: 123 }})name: 'home',component: home,meta: { // 路由元信息keepAlive: false,auth: false,title: '主页'},// 如果 props: true 被设置为 true,route.params 将会被设置为组件属性// 路由组件传参 https://router.vuejs.org/zh-cn/essentials/passing-props.htmlprops: false,beforeEnter: (to, from, next) => { // 路由独享守卫 https://router.vuejs.org/zh-cn/advanced/navigation-guards.htmlconsole.log('beforeEnter');next();}},{path: '/login',name: 'login',component: login,meta: {keepAlive: false, // 用于在 <keep-alive> 中使用,判断是否需要进行缓存auth: false, // 判断是否需要进行登录校验title: '登录' /* 可以通过$route.meta.title 后取当前的描述信息、菜单信息 */}},{path: '*', /* 默认跳转到登录界面 */redirect: {path: '/login'}}],// <router-link to="/bar#anchor">/bar#anchor</router-link>// 可以通过selector模拟滚动到锚点的行为 { selector: string, offset? : { x: number, y: number }}scrollBehavior (to, from, savedPosition) {if (savedPosition) { // 浏览器后退/前进时savedPosition可用return savedPosition;} else if (to.hash) {return {selector: to.hash};} else {return new Promise((resolve, reject) => { // 异步滚动setTimeout(() => {resolve({x: 0, y: 0});}, 500);});}}
});router.beforeEach((to, from, next) => {// 注册一个全局前置守卫if (to.matched.some(m => m.meta.auth)) {// 判断是否需要校验var a = true;if (a) { // 获取next(); // 校验通过,正常跳转到你设置好的页面} else {next({ // 校验失败,跳转至登录界面path: '/login',query: {redirect: to.fullPath} // 将跳转的路由path作为参数,用于在登录成功后获取并跳转到该路径});}} else {next(); // 不需要校验,直接跳转}
});export default router;

login.js

export default {validator: null,data () {return {isLogin: true};},created () {// 接受路由参数,并判断是登录还是注册页面(注:是$route而不是$router)if (this.$route.params.isLogin !== undefined) {this.isLogin = this.$route.params.isLogin;}}
};

原文地址:https://segmentfault.com/a/1190000012801479


更多专业前端知识,请上 【猿2048】www.mk2048.com

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/364644.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ATS日志说明

ATS日志说明 转:http://www.safecdn.cn/在ATS日志中我们经常遇到形形色色的缓存结果码,为了更清晰地认识它们,相关资料整理到这里:TCP_HIT请求对象的一份合法拷贝被缓存,ATS将发送该对象给clientTCP_MISS请求对象未缓存…

leetcode 134. 加油站(Gas Station)

目录 题目描述:示例 1:示例 2:解法:题目描述: 在一条环路上有 N 个加油站,其中第 i 个加油站有汽油 gas[i] 升。 你有一辆油箱容量无限的的汽车,从第 i 个加油站开往第 i1 个加油站需要消耗汽油 cost[i] 升。你从其中的…

在JUnit中测试预期的异常

单元测试用于验证一段代码是否按照开发人员的预期运行。 有时,这意味着检查代码是否也会引发预期的异常。 JUnit是Java单元测试的标准,并提供了几种验证抛出异常的机制。 本文探讨了这些选项及其相对优点。 以下面的简单代码段为例。 除了编写测试以确保…

php session 效率,大量php session临时文件带来的服务器效率问题

早上流量有点大,网站出口流量大概5M左右,访问质量却不太好,Web响应比较慢,切系统负载很高。检 查了下各web节点,所有web服务器的httpd线程均达到满负荷,很奇怪。因为所有web节点都通过nfs来共享session目录…

安卓第三次作业

<?xml version"1.0" encoding"utf-8"?> <uses-sdkandroid:minSdkVersion"8"android:targetSdkVersion"18" /> <uses-permission android:name"android.permission.RECORD_AUDIO" /> <uses-permissio…

[vue插件]基于vue2.x的电商图片放大镜插件

最近在撸一个电商网站&#xff0c;有一个需求是要像淘宝商品详情页那样&#xff0c;鼠标放在主图上&#xff0c;显示图片放大镜效果&#xff0c;找了一下貌似没有什么合适的vue插件&#xff0c;于是自己撸了一个&#xff0c;分享一下。小白第一次分享&#xff0c;各位大神莫见笑…

洛谷 P1968 美元汇率

传送门 我在下面哦~~ Im here 思路 这是一道比较简单的DP题 美元可由马克转化得到&#xff0c;马克可由美元转化得到&#xff0c;最后要求最大的美元值 我们可以用f数组来记录最大能达到多少马克和多少美元。 定义一个\(f[N][3]\)的数组&#xff0c;第一维表示到达了第i天 \(f[…

玩JerseyTest(Jersey 2.5.1和DI)

我将尝试解释一个简单的REST示例。 这个想法是建立一个基本的架构来开始使用Jersey。 当我开始使用某些框架时&#xff0c;通常会开发一个快速失败的测试环境&#xff0c;这就是我要做的。 下一个示例具有以下功能&#xff1a; 泽西岛2.5.1 依赖注入 用于测试的JUnit 类&a…

MySQL之视图、触发器、事务、存储过程、函数

一. 视图 视图是一个虚拟表&#xff08;非真实存在&#xff09;&#xff0c;是跑到内存中的表&#xff0c;真实表是硬盘上的表&#xff0c;怎么就得到了虚拟表&#xff0c;就是你查询的结果&#xff0c;只不过之前我们查询出来的虚拟表&#xff0c;从内存中取出来显示在屏幕上…

php送数据找不到表,php – 数据源默认值中找不到的模型表

我正在创建一个cakephp 2.x应用程序.在开发过程中途,我突然发现自己有一个“找不到表”的错误.Missing Database TableError: Table blocked for model Parental was not found in datasource default.Notice: If you want to customize this error message, create project\Vi…

break、continue、return的区别

break、continue、return的区别 break&#xff1a;表示中断&#xff0c;可以在switch case中或循环中 使用 当遇到break 则结束当前整个switch case 或 循环 continue&#xff1a;表示继续&#xff0c;只能在循环中使用&#xff0c;当遇到continue时&#xff0c;则结束本次&…

原生JS封装ajax以及request

一、封装原生的xhr为ajax类 xhr以及用法见之前的文章1、根据url确定请求的头部以及别的信息。 var _headerConfig {};if(url.indexOf(getcaptcha) ! -1) {_headerConfig {Accept: image/png,responseType: arraybuffer,}} else if(url.indexOf(files/upload) ! -1) {_headerC…

Java 8 Friday Goodies:SQL ResultSet流

在Data Geekery &#xff0c;我们喜欢Java。 而且&#xff0c;由于我们真的很喜欢jOOQ的流畅的API和查询DSL &#xff0c;我们对Java 8将为我们的生态系统带来什么感到非常兴奋。 我们已经写了一些关于Java 8好东西的博客 &#xff0c;现在我们觉得是时候开始一个新的博客系列了…

java类型转换答案,在java中支持两种类型的类型转换,自动类型转换和强制类型转换。父类转化为子类需要强制转换。...

在java中支持两种类型的类型转换,自动类型转换和强制类型转换。父类转化为子类需要强制转换。更多相关问题计算机病毒通过()传染扩散得极快&#xff0c;危害最大。当一个现象的数量由小变大&#xff0c;另一个现象的数量相反地由大变小&#xff0c;这种相关称为()。输油管道沿线…

Java实现回形数,只利用数组、循环和if-else语句

import java.util.Scanner; public class learn {   public static void main(String[] args){ System.out.println("请输入你需要打印多少阶的回形数:");     Scanner scan new Scanner(System.in);     int num scan.nextInt();    // 接收num,则…

FWT(快速沃尔什变换)学习

https://www.cnblogs.com/cjyyb/p/9065615.html edo直接看大佬的博客吧 不仅有证明之类的还有板子呢 转载于:https://www.cnblogs.com/ENESAMA/p/10109995.html

创建一个简单的JAX-RS MessageBodyWriter

JAX-RS确实很酷&#xff0c;借助JAXB&#xff0c;只需添加带有JAXB批注的批注数据对象&#xff0c;即可为您转换许多响应数据类型。 我对JAXB相当陌生&#xff0c;但是一些简单的注释剪切/粘贴操作将带给您很长的路要走。 出于无法从JAX-RS资源方法返回该数据类型的目的&#…

SpringCloud学习笔记(6)----Spring Cloud Netflix之负载均衡-Ribbon的使用

1. 什么是负载均衡&#xff1f; 负载均衡&#xff0c;就是分发请求流量到不同的服务器。 负载均衡一般分为两种 1. 服务器端负载均衡&#xff08;nginx&#xff09; 2. 客户端负载均衡&#xff08;Ribbon&#xff09; 2. 服务提供者&#xff08;spring-cloud-provider&#xff…

pHp中文网零基础,零基础编程

基础编程conmysql_connect(constant("SERVER"),constant("USERNAME"),constant("PASSWORD"));if(!$this->con){die(connet to mysql error.mysql_error());}else{mysql_select_db(constant("DATABASE"),$this->con);}}function …

正确判断js数据类型 总结记录

正确判断js数据类型 总结记录 判断js中的数据类型有一下几种方法&#xff1a;typeof、instanceof、 constructor、 prototype、 三方库。 js六大数据类型 number&#xff1a; 数字&#xff0c;整数、浮点数等等&#xff0c; string&#xff1a; 单引号或者双引号来说明&…