main.js中封装全局登录函数
1. 在 main.js 中封装全局登录函数
通过 vue 对象的原型扩展,可以扩展一个函数,这样这个函数就可以在
每一个界面通过类似指向对象的方式,去访问这个函数。
如下是 main.js 扩展的函数:
Vue.prototype.checkLogin = function(backpage, backtype){
var SUID = uni.getStorageSync('SUID');
var SRAND = uni.getStorageSync('SRAND');
var SNAME = uni.getStorageSync('SNAME');
var SFACE = uni.getStorageSync('SFACE');
if(SUID == '' || SRAND == '' || SFACE == ''){
uni.redirectTo({url:'../login/login?backpage='+backpage+'&backtype='+backtype});
return false;
}
return [SUID, SRAND, SNAME, SFACE];
}
uni.getStorageSync 采用同步的方式获取本地存储的四个变量。
分别是:
- SUID:用户id
- SRAND:用户随机码
- SNAME:用户名称
- SFACE:用户头像
如果四个变量为空值得话,就认为用户没有登录,则使用 uni.redirectTo 重定向的方式跳转到登录页,补充:uni.redirectTo 为 uni-app 中的两种跳转方式之一。
登录失败后返回 false,如果是已经登录了,则把需要获取的值返回回去;
参数说明
backpage, backtype 2个参数分别代表:
- backpage : 登录后返回的页面
- backtype : 打开页面的类型[1:redirectTo、2:switchTab]
返回值说明
已经登录返回数组 [用户 id, 用户随机码, 用户昵称, 用户表情]
2. 创建 login 页面
login 页面作为登录过度页面,多端登录都通过此页面完成!
<template>
<view>
{{backpage}}
---
{{backtype}}
</view>
</template>
<script>
export default {
data() {
return {
backpage:'',
backtype:''
};
},
onLoad:function(e){
this.backpage = e.backpage;
this.backtype = e.backtype;
}
}
</script>
<style>
</style>
3. 在页面中应用登录检查函数
我们通过界面触发校验登陆的函数,如 write.vue 界面。

点击上图中的 写作 将会触发验登陆的函数 checkLogin ,在这同时传递了两个参数,具体代码如下:
<script>
export default {
data() {
return {
};
},
onLoad : function() {
var loginRes = this.checkLogin('../my/my', '2');
if(!loginRes){return false;}
}
}
</script>
return 或终止函数运行哦!
执行结果如下:

很显然,跳转至 login.vue 登陆界面了。
main.js中封装全局登录函数的更多相关文章
- JavaScript -- 时光流逝(七):js中的全局函数
JavaScript -- 知识点回顾篇(七):js中的全局函数 全局函数可用于所有内建的 JavaScript 对象. (1) encodeURI():把字符串编码为 URI. <script ...
- JS中的自执行函数
本来规划的是2013年,狠狠的将JS学习下,谁知计划赶不上变化,计划泡汤了.13年的我对JS来说可以说是属于跟风,对它的理解和认识也仅仅是皮毛而已,也是因为要完成<ArcGIS API for ...
- 在vue项目中的main.js中直接使用element-ui中的Message 消息提示、MessageBox 弹框、Notification 通知
需求来源:向后台请求数据时后台挂掉了,后台响应就出现错误,不做处理界面就卡住了,这时需要在main.js中使用axios的响应拦截器在出现相应错误是给出提示.项目使用element-ui,就调用里面的 ...
- main.js中import引入css与引入js的区别
表现:引入css样式文件能够作用到全局,而引入js文件就只能在main.js中产生作用 在 main.js 中引入的 css 都是全局生效的.引入的 js 文件只在 main.js 中生效,是因为 m ...
- js中的三种函数写法
js中的三种函数写法 <script type="text/javascript"> //普通的声明方式 function myFun(m,n){ alert(m+n) ...
- JS中构造函数和普通函数有什么区别
JS中构造函数有普通函数有什么区别? 1.一般规则 构造函数都应该以 一个大写字母开头,eg: function Person(){...} 而非构造函数则应该以一个小写字母开头,eg: functi ...
- asp.net类似于js中的setTimeOut()的函数作用?
asp.net类似于js中的setTimeOut()的函数作用? 插入这行即可,定时2秒,再运行下一步: System.Threading.Thread.Sleep(); 加个随机数 Random r ...
- JS中的高阶函数
JS中的高阶函数 高阶函数是指以函数作为参数的函数,并且可以将函数作为结果返回的函数. 1. 高阶函数 接受一个或多个函数作为输入 输出一个函数 至少满足以上一个条件的函数 在js的内置对象中同样存在 ...
- JavaScript基础&实战(4)js中的对象、函数、全局作用域和局部作用域
文章目录 1.对象的简介 2.对象的基本操作 2.1 代码 2.2 测试结果 3.属性和属性值 3.1 代码 3.2 测试结果 4.对象的方法 4.1 代码 4.2 测试结果 5.对象字面量 5.1 ...
随机推荐
- cdh zookeeper 不断拒绝连接
测试hiveserver2高可用的时候,需要登录zookeeper检查hiveserver2是否在zookeeper中注册 执行 zookeeper-client 不断的拒绝连接 -- ::, [my ...
- 【Java】JDK/JVM相关工具
1.JDK自带工具 1)常见的用法参见:https://cloud.tencent.com/developer/article/1379487 2)HSDB,即Hotspot debugger,位置在 ...
- ionic3 打包 混淆代码
ionic3 项目中遇到安全漏洞 解决办法: https://www.npmjs.com/package/ionic-voricles-obfuscate 安装插件 cordova plugin ad ...
- Application Security Per-Engagement
1. an SQLi vulnerability will allow you to do the following query the database using select statem ...
- install mysql on centos7
MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可.开发这个分支的原因之一是:甲骨文公司收购了 MySQL后,有将MySQL闭源的潜在风险,因此社区采用分支的 ...
- Knockout中ko.utils中处理数组的方法集合
每一套框架基本上都会有一个工具类,如:Vue中的Vue.util.Knockout中的ko.utils.jQuery直接将一些工具类放到了$里面,如果你还需要更多的工具类可以试试lodash.本文只介 ...
- git本地项目上传至码云gitee
如果你的本机是安装成功第一次使用,先配置一下一些基本的信息 $ git config--global user.name "Your Name" $ git config --gl ...
- Centos系统中彻底删除Mysql数据库
步骤: 1.输入命令查询系统中已安装的mysql. rpm -qa |grep -i mysql 2.逐个卸载mysql. yum remove 系统显示已安装的mysql 比如:yum remove ...
- vuejs2.0如何获取dom元素自定义属性值
1.设置定义属性值 :data-value=".." <ul class="header-ul"> <li class="flex ...
- Classy Numbers
http://codeforces.com/group/w1oiqifZbS/contest/1036/problem/C ①先查找,存入vector(dfs)-->排序(sort)--> ...