微信小程序回调函数是什么
编辑:小飞燕 发布时间:2021-04-14 14:48:46
微信小程序的方方面面都需要了解和开发。你知道微信小程序的回调功能是什么吗?你知道它的含义以及如何使用微信小程序的回调功能吗?
回调函数的含义
刚接触小程序编程的学生可能很难理解。毕竟回调函数的使用违背了程序顺序执行的直观流程。
想象你点了一个外卖,一个是你定期检查外卖是否到了,一个是你给外卖看你的电话号码,到了给你打电话。
很容易看出第二种方案效率更高。事实上,当这种通知机制应用于编程领域时,它被称为回调函数。
熟悉win32开发的同学应该知道,典型的windows applet框架是一个消息循环加上一个窗口过程函数。windows系统接管消息接受,然后调用开发人员的窗口过程函数,完成具体的消息处理逻辑。窗口过程函数是一个回调函数。
为什么需要回调函数
以上面的win32程序为例。我们知道,出于安全原因,windows操作系统不允许开发人员直接访问硬件资源。微软开发者提供api处理消息循环,但是具体消息的响应逻辑需要开发者提供。在这种情况下,回调函数是一个很好的实现方案。
再比如,假设你参与了一个手机设备管理软件项目的开发,你负责底层的设备通信模块。当用户将设备插入计算机时,您需要通知上层模块进行处理。为了灵活性和通用性,你不可能把设备连接的处理逻辑放在你负责的模块里。这时上层调用者可以提供回调函数,你的模块可以在设备连接的时候调用回调函数。
关于回调函数有一个所谓的好莱坞规则:不要叫我;我会打电话给你!
匿名函数
在c、c等语言中,当需要使用回调函数时,需要提前定义一个函数体。回调函数通常只提供给其他模块调用。为了简化编码,下面的脚本语言如javascript提供了对匿名函数的支持。(注:新的c标准也开始支持匿名函数,称为lambda函数)
getuserinfo:function(cb){
变量=这个
if(this.globaldata.userinfo){
type of cb==' function ' cb(this . global data . user info)
}else{
//调用登录界面
wx.login({
成功:功能{
wx.getuserinfo({
成功:功能(res) {
that . global data . user info=res . user info
type of cb==' function ' cb(that . global data . user info)
}
})
}
})
}
},
以上代码来自前面教程中的app.js。调用wx.login时,在调用成功后传递一个匿名函数来处理逻辑,这是成功后的部分。你可以看到只有一个函数定义,没有函数名,所以这个函数除了作为回调函数外,在地方都不能调用。
其实匿名函数只是编码的简化,但它的好处不仅仅是减少编码。
关闭
在编程技术中,闭包应该属于更的技术。
使用回调函数时,通常会涉及到一些上下文转移。在c/c和其他语言中,全局变量或堆内存用于传递上下文。全局变量的缺点很明显,堆内存容易出现内存泄漏。然而,在脚本语言中,上下文转移可以通过闭包技术轻松完成。
以上面的代码为例,在回调函数中执行that . global data . user info=res . user info来保存用户信息,其中var分配的变量that=this,所以变量指向app对象本身,这样就可以成功保存用户信息。
我们可以看到该对象是getuserinfo方法堆栈上的一个变量。没有闭包技术,这里的匿名回调函数不能直接使用那个变量,所以我们需要把app对象传递给回调函数(以全局变量或者函数参数的方式)。在闭包技术的支持下,回调函数可以像使用函数的内部变量一样访问那个变量,这在语法上要方便得多。
在以上资料中,小编详细介绍了微信小程序回调函数的所有相关内容,希望这些资料对大家有所帮助。更多相关信息,请关注源代理网的小程序渠道。
下面是题目的开头。微信小程序ui设计规范。标题到此结束
微信小程序ui设计工具的使用在之前的小系列中已经有介绍。其实在此之前,我们需要了解微信小程序的ui设计规范。以下是用户界面设计规范的具体描述。
摘要
基于微信小程序的轻量级特性,我们制定了小程序界面的设计指南和建议。设计准则基于充分尊重用户的知情权和操作权。目的是在微信生态系统内建立友好、高效、一致的用户体验,同时在很大程度上适应和支持不同的需求,实现用户和小程序服务商的双赢。
第一,友好礼貌
在微信上使用小程序服务时,为了避免复杂环境对用户注意力的干扰,小程序的设计应减少无关设计元素对用户目标的干扰,礼貌地向用户展示程序提供的服务,引导用户友好地操作。
1.突出重点
每个页面都应该有一个清晰的焦点,这样用户在进入新页面时就可以快速理解页面内容。在确定关键点的前提下,尽量避免其他与用户决策和操作无关的干扰因素。
反例表明,这个页面的主题是查询,但是添加了许多与查询无关的业务条目,与用户的目标无关,容易导致用户迷失方向。
修正是指在技术和页面控件的前提下,去除与用户目标无关的内容,定义页面主题,提供有助于用户决策和操作的帮助内容,如比较新的搜索词。
反例说明没有主次之分,让用户别无选择。
要纠正这种指示,首先要避免过多的并行操作供用户选择。当我们必须并行多个操作时,我们应该区分主操作和次操作,以降低用户选择的难度。
2.清除过程
为了让小程序用户能够流畅地使用页面,用户在进行某个操作过程时,要避免出现在用户目标过程之外的内容而打断用户。
反例表示用户有意搜索,但进入页面时被突然出现的模态抽奖框打断;对彩票不感兴趣的用户是非常不友好的干扰;即使有些用户真的被“吸引人”的彩票所吸引,他们也可能在离开主流程去抽奖后忘记了比较初的目标,进而失去对产品真正价值的使用和理解。
第二,清晰明了
一旦用户进入我们的小程序页面,我们就有责任和义务明确告诉用户他在哪里,可以去哪里,以保证用户可以轻松穿梭页面而不迷路,从而为用户提供安全愉快的体验。
导航是保证用户在浏览和跳转网页时不迷路的比较关键因素。导航需要告诉用户在哪里,可以去哪里,怎么回去。首先,微信系统中所有小程序的所有页面都会有微信提供的导航条,解决去哪里,怎么回的问题。在微信级导航中保持一致的体验,有助于用户在微信内部形成统一的体验和互动认知,而不会在小程序与其他微信页面的切换中增加学习成本或改变使用习惯。
微信导航栏
微信小程序的导航栏是直接从客户端继承的。除了导航栏的颜色,开发者不需要或者可以自定义其内容。但是,开发人员需要指定小程序每个页面的跳转关系,所以
微信导航栏分为导航区、标题区和操作区。其中导航区域控制节目页面进度。目前导航栏分为两种基本配色方案。
导航区(ios)
微信进入小程序第一页时,导航区通常只有一个操作——“返回”,即在进入小程序前返回微信页面。小程序后进入二级页面,导航区操作为“返回”、“关闭”。“返回”,即返回到之前的小程序界面或微信界面。“关闭”,即在当前界面直接退出小程序,返回微信页面后再进入小程序。
导航区(android)
导航区只有一个操作——直接退出小程序,进入小程序前返回微信或系统桌面,安卓手机的硬件返回键执行返回上一页的操作。
android导航有一种特殊情况:当用户通过操作区的菜单将小程序添加到android桌面,并从android桌面打开小程序时,小程序的主页上不显示导航按钮。只显示小程序标题和操作区域。在小程序的二级页面,导航区只能返回上一页,安卓手机的硬件后退按钮也有同样的效果。
4微信导航栏自定义颜色规则(ios和安卓)
小程序的导航栏支持基本的背景颜色定制功能,选择的颜色需要在可用性的前提下与微信提供的两套主导航栏图标和谐匹配。建议参考以下颜色选择效果:
颜色选择方案示例
页面内导航
开发者可以根据自己的功能设计需求,给页面添加自己的导航。并且保持不同页面之间的导航一致。但是由于手机屏幕大小的限制,小程序页面的导航应该尽量简单,一般的线性浏览页面建议只使用微信导航条。
开发人员可以选择小程序页面来添加选项卡导航。标签页栏可以固定在页面的顶部或底部,方便用户在不同页面之间切换。标签数量不得少于2个,也不得多于5个。为保证面积,建议标签数量不超过4个。一页上不应有一组以上的制表符分页列。
其中微信提供的原底标分页样式可以从小程序的首页选择,只供小程序的首页使用。您可以在开发过程中自定义图标样式、标签副本和副本颜色。具体设置如图标大小请参考开发文档和weui基础控件库。
顶部选项卡分页栏的颜色可以自定义。在自定义颜色选择中,保持标签栏标签的可用性、可见性和可操作性非常重要。
上一篇:实现微信小程序页面间传值的方法
下一篇:实现小程序跳转外链的两种方法