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 登陆界面了。

posted @ 2019-03-29 22:34 niceyoo 阅读(...) 评论(...) 编辑 收藏

main.js中封装全局登录函数相关推荐

  1. js中(function(){…})()立即执行函数写法理解

    js中(function(){-})()立即执行函数写法理解 javascript和其他编程语言相比比较随意,所以javascript代码中充满各种奇葩的写法,有时雾里看花,当然,能理解各型各色的写法 ...

  2. JS中定义全局配置文件

    js中添加全局配置文件的需求,本文参考自:参考链接,在使用过程中写几句注解: (function(w){w.globalConfig = {remoteIP:"localhost" ...

  3. java配置接口提供给vue,vue在js中配置全局API接口

    在src文件夹中新建util文件夹,然后在新建一个globalAPI.js文件. 在js中配置后端的接口数据 const http = 'http://127.0.0.1:8989' const gl ...

  4. 微信js扫一扫,扫条形码去掉code_128。在vue中封装全局对象的方法,封装微信js-sdk权限验证的方法

    微信公众号在调用扫一扫功能时,一维码(条形码)在直接返回结果时会在结果前带上EAN_8, EAN_13, CODE_25, CODE_39, CODE_128, UPC_A, UPC_E wx.sca ...

  5. vue main.js中引入js_web前端的同学不容错过,大厂Vue最佳实践总结,提高竞争力...

    随着这几年前端技术的快速发展,Vue框架在国内普及率极高,人人都会用.那么,如何才能写得比别人优雅?比别人漂亮? 鉴于一线互联网大厂在前沿技术领域的持续研究和大规模投入,直接向他们取经,是最便捷也是最 ...

  6. js中自己实现bind函数的方式

    前言 最近由于工作比较忙,好久都没时间静下心来研究一些东西了.今天在研究 call 和 apply 的区别的时候,看到 github 上面的一篇文章,看完以后,感觉启发很大. 文章链接为 https: ...

  7. vue main.js中引入js_手把手教你深入Vue3.0(Vue-cli4)项目打包性能优化实践

    记录了自己的博客在禁用缓存的情况下,从八九秒加载时间到最终985ms的优化实践,开启缓存的情况下能达到138ms的访问速度 本人的个人博客采用的是Vue-cli4.1.2 + typescript构建 ...

  8. js中构造函数与普通函数的区别

    构造函数不仅只出现在JavaScript中,它同样存在于很多主流的程序语言里,比如c++.Java.PHP等等.与这些主流程序语言一样,构造函数在js中的作业一样,也是用来创建对象时初始化对象,并且总 ...

  9. 【转载】JS中bind方法与函数柯里化

    原生bind方法 不同于jQuery中的bind方法只是简单的绑定事件函数,原生js中bind()方法略复杂,该方法上在ES5中被引入,大概就是IE9+等现代浏览器都支持了(有关ES5各项特性的支持情 ...

最新文章

  1. oracle10g总结
  2. hdu 1881(简单01背包)
  3. 【机器学习】快速入门机器学习
  4. 实验9 结构程序设计 6-1 计算两个复数之积
  5. c++排序函数_中式排名怎么做,你还在手动输入1、2、2、3?这组函数一秒搞定...
  6. C#深入.NET平台的软件系统分层开发
  7. [WARNING] The POM for XXX-system:jar:1.9.0-SNAPSHOT is missing, no dependency information available
  8. 认识事件冒泡和事件捕获
  9. Java基础学习总结(102)——Java相关的开源项目
  10. 所有权链(Ownership Chain)
  11. 190407每日一句
  12. 汉王考勤 连接mysql_汉王考勤管理软件打开时出现:连接数据错误, 请确认数据库服务器信息是否有误.这样该怎样解决?, 大师请进来...
  13. 将本地项目上传到码云
  14. 中兴新支点国产操作系统新版本越来越好用了
  15. 沃特世推出SELECT SERIES MRT多反射飞行时间质谱平台,树立高分辨质谱性能新标杆
  16. 数据库点滴之T-SQL面试语句,练练手
  17. ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.
  18. 如何制作电子画册?教你快速上手 | 云展网
  19. The reCAPTCHA was invalid. Go back and try it again.
  20. 红外线测温仪方案开发

热门文章

  1. 前端学习(2778):uni组件库的使用
  2. 前端学习(2663):vue3.0的todolist
  3. 前端学习(2156):uglifyjswebpackplugin的使用
  4. oracle之单行函数之子查询课后练习2
  5. 前端学习(518):三列布局实现方式
  6. html:(17):img标签和表单标签
  7. java学习(29):大神指导(巩固练习)
  8. 实例1:python(续)
  9. decimal类型对象里面定义什么类型_奥斯塔罗 单身开启桃花雷达 现阶段的我适合什么类型的对象?...
  10. Unittest方法 -- 测试固件(TestFixture)