Taro

人人都该具备封装思维:Taro+Es6+Promise+Ts简易构建微信小程序的全局请求方法

我的未来我决定 提交于 2020-04-17 17:34:10
无论是app还是小程序或者其他端,交互中请求无处不在。 一个优秀的封装类,能让你的开发效率事半功倍,所以封装逻辑至关重要,当然我也是个小菜鸟,跟着自己的思路写过一些封装方法,一方面是想不足之处还望路过的大神给予指正,二者是为新手打开一个善于封装思维的大门,下面进入到前置知识。 Api: cnodejs.org/api/v1 Ts: 简易的类型声明、接口等 Es6:结构赋值、扩展运算、promise、export等 Taro:类react,以及小程序基础知识等 1.梳理Taro的请求 Taro.request,实现最简易的请求方法 import Taro from '@tarojs/taro' //回调调用 function doRequestAction (){ Taro.request({ url: '' , data: {}, header: {}, success: res => {}, fail: err => {}, complete: info => {} }) } // promise调用 function doRequestAction (){ Taro.request({ url: '' , data: {}, header: {} }) .then(res=>{}) .catch(err=>{}) .finally(()=>{}) } 复制代码

第四期|前端如何搞规划—所求所思所得

此生再无相见时 提交于 2020-04-13 21:46:08
【今日推荐】:为什么一到面试就懵逼!>>> 技术的价值在于解决问题——为业务赋能,为团队提效,为自己开心,为家人提供保障富足的生活。 堂主说:从场景出发找方案,事半功倍。 堂主还说:身价取决于解决问题的能力。 下边,我们带着问题出发从前辈们分享中找答案。 背景 大概去年这个时候,leader找到我,希望我能抽出一部分精力负责基建或者带人,我当时的回复是我两方面都有兴趣,带人方面由他来安排就好,基建方面给出的回复是以下这些我当时想到的 考虑到自动化测试相关会有一定的推广难度,应该需要依赖组织的能力来执行,跟leader沟通,这个事情由他来推动,正好他也计划要做。 时隔一年,目前的成果是: 带人方面:合理分工,带领新人熟悉业务,熟悉新技术,同时保障业务正常上线。 基建方面: 1.抽离自己业务线中的通用模块和组件; 2.模板库: wepy1.0模板、Taro模板、h5模板、CMS系统模板; 3.cli: 基于模板创建项目,初始化项目并自动创建、关联远程仓库。 复制代码 虽然做了一些事情,但是我觉得并没有产生多少价值,对团队的帮助也很小,应该没有实现leader的预期,同时过去一年自身的成长也不够,所以我很焦虑,我想除了自身负责的业务线之外,做一些不一样的事情,解决团队和业务的问题,也提高自己的身价。 今天,早早聊各位前辈,关于前端搞规划的分享,解放了我的思想,给我指明了道路,谢谢前辈!!

参考这套代码,辩论赛也能搬到线上

一曲冷凌霜 提交于 2020-03-23 22:14:34
3 月,跳不动了?>>> 你熟悉辩论么?如果不熟悉,“奇葩说”总是看过的吧?我们这次想聊聊辩论赛的“未来”。 说是“未来”,或许现在也同样适用。在疫情还未解除的情况下,很多线下活动都无法进行,辩论就是其中之一。不过已经有人将这个场景从线下搬到了线上。 我们 2019 年 RTC 创新编程挑战赛的三强之一,“辩之竹”团队实现了一套功能完整的辩论系统,能计时、在线辩论、裁判视频点评,还能统计票数等。而且,它已经应用于很多辩论比赛中。于是我们让“辩之竹”撰写分享了一下作品的初衷,还有核心功能的实现: 项目介绍 为解决传统辩论赛UI丑、各系统相互割裂、线下举办各类成本等问题,特开发此系统。该套系统完全体包括: 可定制的赛事计时器 赛程、评委和辩手 管理后台 赛程查看和无纸化提交分数的小程序 赛后即时点对点反馈个人表现的辩力提升系统 远程裁决的视频会议部分 项目初心 作为一个大学生,我们经常在大学举办各类辩论赛,但是在当前的辩论赛事中,长期存在着五大问题,即如图: image.png 日程查看不直观 计时器简陋不美观 统计票数麻烦且不环保 复盘数据获取困难 优质裁判资源稀少 除了以上问题,其实我们也发现现在的辩论赛非常受限于场地的局限,就算同一学校的两支辩论队也要解决申请教室、邀请评委、宣传吸引观众等问题,更别说如果是两所学校,两个城市,甚至两个国家的辩论队之间要举办比赛了

参考这套代码,辩论赛也能搬到线上

|▌冷眼眸甩不掉的悲伤 提交于 2020-03-20 23:43:15
3 月,跳不动了?>>> 你熟悉辩论么?如果不熟悉,“奇葩说”总是看过的吧?我们这次想聊聊辩论赛的“未来”。 说是“未来”,或许现在也同样适用。在疫情还未解除的情况下,很多线下活动都无法进行,辩论就是其中之一。不过已经有人将这个场景从线下搬到了线上。 我们 2019 年 RTC 创新编程挑战赛的三强之一,“辩之竹”团队实现了一套功能完整的辩论系统,能计时、在线辩论、裁判视频点评,还能统计票数等。而且,它已经应用于很多辩论比赛中。于是我们让“辩之竹”撰写分享了一下作品的初衷,还有核心功能的实现: 项目介绍 为解决传统辩论赛UI丑、各系统相互割裂、线下举办各类成本等问题,特开发此系统。该套系统完全体包括: 可定制的赛事计时器 赛程、评委和辩手 管理后台 赛程查看和无纸化提交分数的小程序 赛后即时点对点反馈个人表现的辩力提升系统 远程裁决的视频会议部分 项目初心 作为一个大学生,我们经常在大学举办各类辩论赛,但是在当前的辩论赛事中,长期存在着五大问题,即如图: image.png 日程查看不直观 计时器简陋不美观 统计票数麻烦且不环保 复盘数据获取困难 优质裁判资源稀少 除了以上问题,其实我们也发现现在的辩论赛非常受限于场地的局限,就算同一学校的两支辩论队也要解决申请教室、邀请评委、宣传吸引观众等问题,更别说如果是两所学校,两个城市,甚至两个国家的辩论队之间要举办比赛了

GitHub Top 小程序

↘锁芯ラ 提交于 2020-02-27 00:30:23
GitHub Top 本项目为 GitHub 热点项目微信小程序客户端,首页仅推荐一个热点项目,这个项目往往是社会热门事件所催生的一个项目,如 996.ICU 、 wuhan2020 ,所推荐项目标准为: 积极、健康、热点、具有一定进步性 。 GitHub 小程序有很多,但推荐热点项目的往往是拉取 GitHub Trending 数据,有其意义(本小程序也支持此功能),但获取所需信息效率较低,不一定找得到你所需要的项目,因此创建本项目。本项目创建的目标是: 打开即所需 。 本项目使用方法 喜欢闲逛 GitHub 的开发者 、 GitHub 相关内容公众号运营者 , 以及 热点项目的关注者 ,都可以关注收藏此项目,欢迎日常查看;也可在公众号后台关联此项目,在文章中插入小程序,读者可方便跳转并查看 GitHub 项目,插入小程序方法请点击 这里 。 功能介绍 首页推荐唯一热点项目 第二个 Tab 页推荐热点周边或历史热点项目 第三个 Tab 页显示 GitHub Trending 第四个 Tab 页显示你所 Follow 的人的最近活动,往往在这里也可能找到你所感兴趣的项目 第五个 Tab 页显示你的 GitHub 账号信息,对自己项目进行管理 在本项目中,你可以方便 Star 或 Fork 你所感兴趣的项目,提 Issues 或针对 Issues 进行评论等,也可方便 Follow

小程序开发比较

无人久伴 提交于 2020-02-26 17:16:25
mpvue,wepy跟不上节奏就不谈了。比较下原生,taro, uni-app 原生:效率低下,语法支持性差 ,框架就是用来节省时间的, taro:基于raect,本人react没有深入 后续有机会再实践 uni-app: 效率高,应用市场也丰富。 vue上手难度低,对于企业来讲更容易进行维护 。 vue流行主要是因为它可以简化开发者的代码、无需开发者手动做很多优化,就可以得到高性能的应用。 不比一般人原生写的性能差, 比如原生微信开发setdata,从逻辑层js传输数据到视图层,是有时间损耗的。而uni-app是自动diff差量更新数据。 来源: oschina 链接: https://my.oschina.net/u/560237/blog/3168839

无聊也是一种生产力

本小妞迷上赌 提交于 2020-02-26 13:46:36
​无聊也是一种生产力,最近不止无聊,还心烦,这种情况我只会做三种事情会比较开心,和某人出去玩、打游戏或者是写代码,前两种由于现实情况没办法实现,我就只能采用第三种方法了,并且这种时候写代码总可以写点自己想做的东西。 小程序,很久之前写了一个非常简单的,当时就觉得微信小程序原生的语法真是的太复杂限制太多还不好用,尤其像我这种人,做出来的东西真的是丑的要死。这一次当然不会从头来了,果断 GitHub 找一找,不出所料,找到了我想做的东西的模板,甚至更应该说找到了还算不错的项目,Gitter,这是一个号称最漂亮的 GitHub 微信小程序,我表示同意,但是用着用着,发现其实有一点问题,无法满足我的需求: 他的项目中 README 显示直接宕机了,不能显示 README 了,这个影响有点大,后来我看代码,猜测的原因是他把 markdown 的解析放到了服务器上,服务器挂掉了或者什么其他原因吧。 打开小程序显示的就是 GitHub Trending,这个功能不错,但是在 Trending 中找到感兴趣的项目效率其实还是有点低的,很多时候我进去是看最近最火的现象级的项目是什么,比如 996.ICU,wuhan2020 这种,这个需求没有得到很好的满足。 用这个小程序提 issue 的时候会自动加上一个小尾巴,内容是 Gitter 小程序的二维码,这个功能可以让使用者帮忙推广 小程序

小程序优化

放肆的年华 提交于 2020-01-07 02:17:54
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 项目概况 框架taro 原方案使用movable-area实现地图滑动和小比例缩放,三个不同比例背景图,3组设施点坐标信息,缩放不同尺度切换相应的背景图 实现需求 原方案缩放触发切换不同背景图和设施点时,会有明显卡顿,过度不够平滑 设施点需要配置3组不同坐标,增加工作量 难题 方案选型:movable-area和canvas对比 方案一:movable-area组件在缩放时,以画布中心点为中心缩放,canvas可实现以手指接触中心点为中心实现缩放,体验更友好(尝试不断偏移缩放中心点,但卡顿太明显放弃) 方案二:canvas平移或缩放时延迟较大,优化后平均延迟也在40-60ms,产品可以接受,movable-area组件比较平滑 canvas延迟优化 优化前方案,触发移动后,计算坐标变化,然后绘制新图形 _moveHander(){ ... math()//计算坐标变化 draw(){ //绘制图形 ... this.canvas.draw() // canvas绘制图形 } } 优化后方案,触发移动后,判断绘制事件数量,队列较长时,抛弃部分计算,绘制工作 drawNum = 0 _moveHander(){ if(this.drawNum > drawMaxNum){ // draw事件队列长度控制

taro实现聊天|taro仿微信聊天界面|taro+redux多端实例

瘦欲@ 提交于 2019-12-17 20:38:45
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 最近一直进行多端探索开发,之前就有使用 uniapp+vue开发过多端仿抖音/陌陌直播室项目 ,今天给大家分享的是基于taro+react多端仿微信界面聊天室TaroChat项目,同样支持编译到H5端、小程序、App端。 技术实现: 框架技术:react/taro/redux/reactNative iconfont图标:阿里字体图标库 自定义Navbar + Tabbar 弹窗组件:taroPop(基于Taro封装自定义对话框) 支持编译:H5端 + 小程序 + App端 /** * @desc Taro入口页面 app.jsx */ import Taro, { Component } from '@tarojs/taro' import Index from './pages/index' // 引入状态管理redux import { Provider } from '@tarojs/redux' import { store } from './store' // 引入样式 import './app.scss' import './styles/fonts/iconfont.css' import './styles/reset.scss' class App extends Component {

《微信小程序项目开发实战:用WePY、mpvue、Taro打造高效的小程序》(笔记2)WePY版HelloWorld

一个人想着一个人 提交于 2019-12-15 20:27:04
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 本节将介绍如何使用WePY创建一个最简单的项目,也就是之前已经创建过的HelloWorld。 1.6.1 创建HelloWorld项目 首先需要在使用的代码编辑器中新建一个项目,之后使用CMD命令行工具或者是终端shell等使用“cd 文件目录”的命令进入到该项目目录下。 执行:wepy init standard HelloWorld,执行成功后会对该项目进行一些初始化配置,这里选择的配置如图1-27所示。 图1-27 创建WePY项目 这里配置的AppID和其他的内容并不能直接作用于微信小程序本身,而是会记录在WePY项目的project.config.json文件中。该工程项目配置的project.config.json内容如下所示。 { "description": "A WePY project", "setting": { "urlCheck": true, "es6": false, "postcss": false, "minified": false }, "compileType": "miniprogram", "appid": "touristappid", "projectname": "hello", "miniprogramRoot": "./dist" } 等待创建项目成功