记一次uniapp的经历

简介: 这几天在做一个app,打比赛用,使用的是uni+uView的组件库。这个组件库是半道加进来的,学弟推荐的,我看有组件的话确实会方便很多,而且他都是按需引入,不占用额外空间,挺好的,我也就直接拿来用了。使用感想:感觉这套技术栈跟vue+element差不多了emm,就是某些官方api还不太一样,还是比较顺手的。

前言

这几天在做一个app,打比赛用,使用的是uni+uView的组件库。这个组件库是半道加进来的,学弟推荐的,我看有组件的话确实会方便很多,而且他都是按需引入,不占用额外空间,挺好的,我也就直接拿来用了。

使用感想:感觉这套技术栈跟vue+element差不多了emm,就是某些官方api还不太一样,还是比较顺手的。

组件库传送门: uView - 多平台快速开发的UI框架

但是,不熟悉组件的api以及参数,让我踩了坑,非常难受emm,还是写个记录,长长记性。

本次内容:分享一次因粗心踩的坑,一个自己进行封装的经历

坑:uView组件库,uToast组件

传送门:Toast 消息提示

使用方法:

// 将这个标签放在页面中
<u-toast ref="uToast" />
// 需要消息提示的话,加上如下代码
this.$refs.uToast.show({
    title: '登录成功',
    type: 'success',
    url: '/pages/user/index'
})

参数:

  • title:消息提示显示的文本
  • type:主题类型,不填默认为default(一共有6中主题色)
  • url:toast结束跳转的url,不填不跳转
更多详细api请点击上方toast传送门去到该组件库官网看

我遇到的坑,便是填写了url,他执行结束后不跳转。

说一下我的大致使用情况:

登录成功后弹出消息提示登录成功,完后跳转到一个tab页面上去。但是他只给弹出登录成功,不报错也不跳转。当时真的人傻了,找了好多地方,也打了断点,所有的事情都告诉我一切正常。于是我开始怀疑起我的电脑emm,我将整个程序打包,发给了我的学弟,让他在他电脑上帮我调试一下,结果与我电脑一致(nice!那就是电脑没坏,还能用),在我吃完饭回到电脑前准备跟这个问题决一死战的时候,学弟发来的一张截图让我人呆滞了。

参数 说明 类型 默认值 可选值
isTab toast结束后,跳转tab页面时需要配置为true Boolean fasle true

没错,就是这个表格。我才知道这个组件要是跳转到tab页面的话还需要额外配置一个参数,赶忙加上,于是我又从坑中站了起来。

关于toast结束跳转URL

  • 如果配置了url参数,在toast结束的时候,就会用uni.navigateTo(默认)或者uni.switchTab(需另外设置isTabtrue)
  • 如果配置了params参数,就会在跳转时自动在URL后面拼接上这些参数,具体用法如下:
this.$refs.uToast.show({
    title: '操作成功',
    url: '/pages/user/index',
    params: {
        id: 1,
        menu: 3
    }
})

这个故事告诉我们,大家使用之前一定要摸清楚api,不要学习泽泽!!!

封装uni.getStorage函数

这个应该不算坑,我只是觉得他这个使用起来不是很方便(好像是相当不方便)

传送门:uni.getStorage

它的作用就是从本地缓存中异步获取指定 key 对应的内容。

我的需求就是要从缓存中获取一些我之前存入进去的东西,但是我取一个还好,某一处需要取两个的话要把这个函数写两次,反正我本人是觉得很麻烦的(即使CV不麻烦,但在程序员眼中,代码相似程度有点高),那为什么不尝试着封装一下呢?

函数本来的样子:

uni.getStorage({
    key: 'storage_key',
    success: function (res) {
        console.log(res.data);
    }
});

他是根据key,去取缓存中的数据,完后返回值res.data中就是我们需要的数据了。

思路就是:传一个key给他,同时接好res.data的值

改造前:

uni.getStorage({
    key: 'token',
    success:(res) => {
        console.log('token:'+ res.data)
        this.token = res.data
    }
})
uni.getStorage({
    key: 'username',
    success:(res) => {
        console.log('username' + res.data)
        this.userInfo.username = res.data
    }
})

改造后:

getCache(a){
    let b = '';
    console.log('a:'+a)
    uni.getStorage({
        key:a,
        success:(res)=>{
            console.log('res.data:'+res.data);
            b = res.data;
            return res.data;
        }
    })
    return b;
},

需要调用的时候这样:

let username = this.getCache('username')

是不是非常的方便呢?

封装,yyds

最后

踩坑可以迟到,但永远不会缺席,我们能做的就是每次细心一点,并且把犯过的错,背过的锅记录在小本本上,再也不去犯第二次。

毕竟,神也会犯错呀!

祝愿天下的程序员都少一点bug吧。

改进上面的封装函数

自己今天使用的时候发现,这样封装只能单页面内使用,可是一个项目中,我有好几处都要使用,就只能复制粘贴。

那我不又成了cv程序员???

于是我继续开始封装,想把它以组件的方法进行封装。

cache.js,我给他放在了common文件夹内

 export function getCache(a){
    let b = '';
    console.log('a:'+a)
    uni.getStorage({
        key:a,
        success:(res)=>{
            console.log('res.data:'+res.data);
            b = res.data;
            return res.data;
        }
    })
    return b;
}

使用方法:

在需要使用这个函数的页面进行引入就好,方法类似于我们按需引入组件。

import {getCache} from 'common/cache.js'

使用的时候直接进行调用就好。

this.username = getCache('username')
相关文章
|
测试技术
apifox的并发处理—通过动态变量实现
apifox的并发处理—通过动态变量实现
apifox的并发处理—通过动态变量实现
|
人工智能 安全 算法
5G 网络中的加密:守护你的数据安全
5G 网络中的加密:守护你的数据安全
1015 0
|
10月前
|
敏捷开发 开发框架 小程序
微信纯血鸿蒙版正式发布,295天走完微信14年技术之路!
不管外界如何评价和鞭策,这款产品本身,依然需要研发团队一个键一个键敲出来,从内核,到架构,到内测,到公测,再到一轮一轮的 debug,他们要在不到一年的时间里,走完微信14 年的路。 回顾鹅厂所做过的产品里,也许从未有过一款,被如此放在放大镜下凝视。每一次上架,每一个 bug,乃至于每一个里程碑,几乎都预定当天热搜。
436 6
微信纯血鸿蒙版正式发布,295天走完微信14年技术之路!
|
小程序 前端开发 API
一文就知道uniapp等跨端开发的使用场景,学习成本,如何快速使用,基本语法等
uniapp是一个跨平台开发各种各样应用的一套框架。只需要写一套代码,可以适配多达14种产品类型,比如H5移动端、微信小程序及各种其他小程序,ios、安卓等接近原生APP的应用(可以上架到App Store或应用商店)。所以这里的多端,指的并不是PC、平板、手机端,而是移动端优先,开发者可以一次编码,分别编译为小程序和 Android 以及 iOS 应用,实现多端开发
952 0
|
NoSQL Ubuntu 网络协议
qemu 虚拟机
qemu 虚拟机
350 8
|
缓存 监控 计算机视觉
基于OpenCv的视频流处理方法
基于OpenCv的视频流处理方法
1144 0
|
机器学习/深度学习 数据可视化 PyTorch
PyTorch小技巧:使用Hook可视化网络层激活(各层输出)
这篇文章将演示如何可视化PyTorch激活层。可视化激活,即模型内各层的输出,对于理解深度神经网络如何处理视觉信息至关重要,这有助于诊断模型行为并激发改进。
516 1
|
SQL Cloud Native 架构师
深入浅出Presto:大数据查询引擎的原理与应用
【4月更文挑战第7天】Presto是高性能的分布式SQL查询引擎,专为大规模数据交互式分析设计。它采用分离式架构,内存计算和动态规划优化查询,支持跨源查询、交互式查询和ANSI SQL兼容性。应用于大数据分析、实时数据湖查询和云原生部署。Presto的灵活性和效率使其在大数据处理领域备受推崇,适合分析师、数据科学家和IT架构师使用。未来将在博客中分享更多实践和案例。
1503 1
|
数据采集 存储 监控
大数据治理:确保数据质量和合规性
【5月更文挑战第30天】大数据治理涉及数据分类、访问控制和质量监控,以确保数据安全和合规性。企业需保护个人隐私,防止数据泄露,并遵守各地法规,如GDPR和CCPA。技术实践包括数据加密、匿名化和严格访问控制。管理策略则强调制定政策、员工培训和法律合作。全面的数据治理能保障数据质量,驱动组织的创新和价值增长。
585 0
|
存储 监控 关系型数据库
zabbix 入门教程
Zabbix是一个开源的监控系统,它可以用来监控网络、服务器、虚拟机和云资源等。以下是从入门到掌握Zabbix的一些基本步骤:
1237 0
下一篇
开通oss服务