next

vue-router 导航守卫

回眸只為那壹抹淺笑 提交于 2020-12-18 09:30:10
<! DOCTYPE html > < html lang ="en" > < head > < meta charset ="UTF-8" > < title ></ title > </ head > < body > < div id ="app" ></ div > < script type ="text/javascript" src ="../vue.min.js" ></ script > < script type ="text/javascript" src ="../js/node_modules/vue-router/dist/vue-router.min.js" ></ script > < script src ="../node_modules/axios/dist/axios.js" ></ script > < script type ="text/javascript" > // 导航完成后获取数据,这让我们有机会在数据获取期间展示一个 loading 状态,还可以在不同视图间展示不同的 loading 状态。 var Index = { template: ` < div > 我是首页 < / div> ` }; var Post = { data() { return { loading: false , error: null , post

使用Vue-Router的导航守卫-无限循环问题

荒凉一梦 提交于 2020-12-18 08:52:50
我在项目里面用到了的是全局守卫,beforeEach,方便管理 不过遇到了一个问题,就是在beforeEach()中设置好判断条件后出现了无限循环的问题 当时的代码如下: router.beforeEach((to, from, next) => { if (isLogin) { next() } else { console.log('测试') next('login') } }) 结果chrome的debug中看到: 这个问题我是这样理解的: next() 表示路由成功,直接进入to路由,不会再次调用router.beforeEach() next('login') 表示路由拦截成功,重定向至login,会再次调用router.beforeEach() 也就是说beforeEach()必须调用next(),否则就会出现无限循环,next() 和 next('xxx') 是不一样的,区别就是前者不会再次调用router.beforeEach(),后者会!!! 官网这样写的(主要是红线标记的那句!): 最终解决的代码如下: router.beforeEach((to, from, next) => { if (isLogin) { next() } else { if (to.name === 'login') { next() } else { console.log('测试')

理解 vue-router的beforeEach无限循环的问题

泄露秘密 提交于 2020-12-18 08:41:23
在理解beforeEach无限循环之前,我们先来看一下beforeEach相关的知识点,该篇文章的项目是基于 express+vue+mongodb+session 实现注册登录 这篇文章项目基础之上进行讲解的,因为登录完成后,会跳转到列表页面,那么在跳转到列表页面之前,我们会使用 router.js 使用beforeEach来判断下,如果登录成功,并且session在有效期内的话,就跳转到下一个页面去,否则的话,就重定向到登录页面去。 app/index/router.js 代码如下: import Vue from 'vue' ; import VueRouter from 'vue-router' ; // 告诉 vue 使用 vueRouter Vue.use(VueRouter); const routes = [ { path: '/list' , name: 'list' , component: resolve => require(['./views/list' ], resolve) }, { path: '*', // 其他没有的页面都重定向到 home页面去 redirect: '/login' }, { path: '/login' , name: 'login' , component: resolve => require(['./views

426. Convert Binary Search Tree to Sorted Doubly Linked List把bst变成双向链表

北城以北 提交于 2020-12-18 06:52:05
[抄题]: Convert a BST to a sorted circular doubly-linked list in-place. Think of the left and right pointers as synonymous to the previous and next pointers in a doubly-linked list. Let's take the following BST as an example, it may help you understand the problem better: We want to transform this BST into a circular doubly linked list. Each node in a doubly linked list has a predecessor and successor. For a circular doubly linked list, the predecessor of the first element is the last element, and the successor of the last element is the first element. The figure below shows the circular doubly

201871010104-陈园园 《面向对象程序设计(java)》第四周学习总结

99封情书 提交于 2020-12-18 06:47:54
201871010104-陈园园 《面向对象程序设计(java)》第四周学习总结 项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业要求在哪里 https://www.cnblogs.com/lily-2018/p/11441372.html 作业学习目标 掌握类与对象的基础概念,理解类与对象的关系; 掌握对象与对象变量的关系; 掌握预定义类Date、LocalDate类的常用API; 掌握用户自定义类的语法规则,包括实例域、静态域、构造器方法、更改器方法、访问器方法、静态方法、main方法、方法参数的定义要求;(重点、难点) 掌握对象的构造方法、定义方法及使用要求;(重点); 理解重载概念及用法; 掌握包的概念及用法; 第一部分:总结第四章理论知识 1.类与对象概念  (1)类是构造对象的模板或蓝图,由类构造对象的过程称为创建类的实例。 (2)对象:即数据,对象有三个特性,行为、状态、标识。 2.类与对象的关系 (1)类是对象,事物的描述和抽象,是具有相同属性和行为的对象集合。对象则是该类事物的实例。     (2)类是一个静态的概念,类本身不携带任何数据。当没有为类创建任何对象时,类本身不存在于内存空间 中。对象是一个动态的概念。每一个对象都存在着有别于其它对象的属于自己的独特的属性和行为

python requests 超时与重试

自古美人都是妖i 提交于 2020-12-18 05:57:36
一 源起: requests模块作为python爬虫方向的基础模块实际上在日常实际工作中也会涉及到,比如用requests向对方接口url发送POST请求进行推送数据,使用GET请求拉取数据。 但是这里有一个状况需要我们考虑到:那就是超时的情况如何处理,超时后重试的机制。 二 连接超时与读取超时: 超时:可分为连接超时和读取超时。 连接超时 连接超时,连接时request等待的时间(s) import requests import datetime url = ' http://www.google.com.hk ' start = datetime.datetime.now() print ( ' start ' , start) try : html = requests.get(url, timeout=5 ).text print ( ' success ' ) except requests.exceptions.RequestException as e: print (e) end = datetime.datetime.now() print ( ' end ' , end) print ( ' 耗时: {time} ' .format(time=(end - start))) # 结果: # start 2019-11-28 14:19:24.249588 #

ArcGIS Server10.4 service发布步骤

 ̄綄美尐妖づ 提交于 2020-12-18 04:07:44
准备内容 安装环境:win10*64位专业版 安装文件:ArcGIS_Server_Ent_Windows_1041_150998.iso 破解文件:Lic10.4.1.ecp #安装Server前,请保证已有Desktop环境,并关闭防火墙,保证6080端口畅通。 #请都以管理员身份运行安装程序 安装步骤 1、 右键以管理员身份运行:ArcGIS_for_Server_Windows_1041_151921.exe。 2、 检测工具安装,默认路径下一步。 3、 检测工具安装完成后,弹出Server安装窗口,默认next。 4、 选择安装路径后,点next。 5、 安装python(程序很小,默认路径即可),next。 6、 配置Server账户,这里需要记住密码,站点登陆需要。(推荐arcgis/arcgis) 7、 默认next,直到install。 8、点击finish。 8、 选择破解文件,完成破解。 9、 完成。 10、 登陆https://localhost:6443/arcgis/manager/,创建新站点。 11、 登陆用户siteadmin/arcgis。 12、 使用默认配置即可,直至完成。 13、 打开ArcCatalog,新建一个Server站点,Add ArcGIS Server。 14、 选择Administer GIS Server,下一步。 15、

ALGO-5_蓝桥杯_算法训练_最短路

荒凉一梦 提交于 2020-12-18 03:23:26
记: 一开始没接触过关于最短距离的算法,便开始翻阅关于图的知识, 得知关于最短距离的算法有Dijkstra算法(堆优化暂未看懂),Bellman-Ford算法,Floyd算法,SPFA算法。 由于数据输入中存在负边,故可使用的有Dijkstra算法堆优化以及SPFA队列优化, 于是在网上找模版,却报出了运行错误。 也没看出问题,故翻阅他人笔记 其中一篇关于SPFA详解的blog: http://blog.csdn.net/muxidreamtohit/article/details/7894298 让我恍然大悟, 然后就开始动笔... 第一次,10分  原因:没加结点的检查,造成死循环; 第二次,50分  原因:结点访问标记放在了判断最短距离的外面,造成了重复入队; 第三次,100分 源码如下: 1 #include <stdio.h> 2 #include <stdlib.h> 3 #define MAX 99999999 4 5 typedef struct node node_t; 6 typedef struct node 7 { 8 int n ; /* 指向的结点 */ 9 int v ; /* 边权值 */ 10 node_t * next; 11 }node; 12 typedef node * node_p; 13 node_p *e = NULL; 14 15

Windows 10 Mac 为Vs Code配置C/C++环境

人盡茶涼 提交于 2020-12-18 03:13:33
2019-06-10 更新: 加上Mac版本的Vscode配置文件 0、前言 实现效果:右键一键编译运行C/C++文件 Vs code的代码效果很好看,也很轻量,所以想为Vs Code配置C/C++环境,折腾了一个下午,实现的最终效果是:可以在Vs code里面一键编译运行C/C++文件(效果和自己在终端输入命令一样)。 但是请注意:这里的设置并没有弄调试环境。只是设置了编译和运行。 1、安装g++/gcc Windows 是默认不带g++/gcc的,所以需要自己下载配置。 而Mac自带gcc/g++,不需要额外安装~ 下载Mingw安装包 , mingw-get-setup.exe ( https://osdn.net/projects/mingw/releases/) 打开安装包,一路next。完成后会弹出一个管理窗口。 在该窗口中,右键 mingw32-gcc-g++-bin ,点击 mark for installation 。 点击左上角的 installation ,选择 Apply changes 。 等待完成 设置环境变量。增加一个PATH: C:/MinGW/bin (默认安装是这个路径,如果安装时修改了,请修改到实际路径。) 打开cmd窗口,输入 g++ -v ,若有结果,则正常。 本文博客: http://www.cnblogs.com/toulanboy/

Android 事件分发

旧巷老猫 提交于 2020-12-18 00:54:48
1. 规律: (1) activity的dispatchTouchEvent 返回 super传给下层 ,其他表示消费 (2) dispatchTouchEvent 返回true表示消费 返回super (ViewGroup和View的) 传给自己:ViewGroup的的onInterceptTouchEvent , View的onTouchEvent 返回false(ViewGroup和View的)表示传给上层的onTouchEvent (3) onTouchEvent返回true表示消费 返回super和false(ViewGroup和View的) 传给上级的onTouchEvent (4) onInterceptTouchEvent返回true传给自己的onTouchEvent ,返回false或super传给下级View的dispatchTouchEvent。 (5)消费:ACTION_DOWN(ACTION_MOVE、ACTION_UP)传递在其中一环节消费,表示不会进行接下来的传递。未消费的话当前ACTION_DOWN(ACTION_MOVE、ACTION_UP)执行后传递给下一个ACTION_DOWN(ACTION_MOVE、ACTION_UP)。 参考https://blog.csdn.net/qq_36523667/article/details/78825810