总结分享一些基于小程序的面试题,让你面试稳操胜券!小程序开发

第二步:wx.getUserInfo获取加密过的数据encryptedData和解密参数iv

●onLoad()页面加载时触发,只会调用一次,可获取当前页面路径中的参数。

●onShow()页面显示/切入前台时触发,一般用来发送数据请求;

●onReady()页面初次渲染完成时触发,只会调用一次,代表页面已可和视图层进行交互

●onHide()页面隐藏/切入后台时触发,如底部tab切换到其他页面或小程序切入后台等

●onUnload()页面卸载时触发,如redirectTo或navigateBack到其他页面时

小程序常用的框架

组件化开发框架wepy官方介绍:组件化开发,完美解决组件隔离,组件嵌套,组件通信等问题,支持使用第三方npm资源,自动处理npm资源之间的依赖关系,完美兼容所有无平台依赖的npm资源包.官方框架MINA官方介绍:框架提供了自己的视图层描述语言WXML和WXSS,以及基于JavaScript的逻辑层框架,并在视图层与逻辑层间提供了数据传输和事件系统,可以让开发者可以方便的聚焦于数据与逻辑上。

程序分为两个部分webview和appService。其中webview主要来展现UI,appService用来处理业务逻辑、数据及接调。它们在两个进程中运,通过系统层JSBridge实现通信,实现UI的渲染、事件的处理

小程序项目的主要目录文件作用

小程序的双向绑定和vue哪里不一样

小程序直接this.data的属性是不可以同步到视图的,必须调用:this.setData({//这里设置})

小程序页面的生命周期函数

onLoad页面加载时触发。一个页面只会调用一次,可以在onLoad的参数中获取打开当前页面路径中的参数(监听页面加载)

onShow()页面显示/切入前台时触发(监听页面显示)

onReady()页面初次渲染完成时触发。一个页面只会调用一次,代表页面已经准备妥当,可以和视图层进行交互(监听页面初次渲染完成)

onHide()页面隐藏/切入后台时触发。如navigateTo或底部tab切换到其他页面,小程序切入后台等(监听页面隐藏)

onUnload()页面卸载时触发。如redirectTo或navigateBack到其他页面时(监听页面卸载)

小程序的wxss和css有哪些不一样的地方

WXSS和CSS类似,不过在CSS的基础上做了一些补充和修改

尺寸单位rpxrpx是响应式像素,可以根据屏幕宽度进行自适应。规定屏幕宽为750rpx。如在iPhone6上,屏幕宽度为375px,共有750个物理像素,则750rpx=375px=750物理像素

使用@import标识符来导入外联样式。@import后跟需要导入的外联样式表的相对路径,用;表示语句结束

小程序页面间有哪些传递数据的方法

(1)使用全局变量实现数据传递在app.js文件中定义全局变量globalData,将需要存储的信息存放在里面使用的时候,直接使用getApp()拿到存储的信息

如何实现下拉刷新

首先在全局config中的window配置enablePullDownRefresh在Page中定义onPullDownRefresh钩子函数,到达下拉刷新条件后,该钩子函数执行,发起请求方法请求返回后,调用wx.stopPullDownRefresh停止下拉刷新

bindtap和catchtap的区别是什么

相同点:首先他们都是作为点击事件函数,就是点击时触发。在这个作用上他们是一样的,可以不做区分

不同点:他们的不同点主要是bindtap是不会阻止冒泡事件的,catchtap是阻止冒泡的

‘wx.navigateTo()’,‘wx.redirectTo()’,‘wx.switchTab()’,‘wx.navigateBack()’,'wx.reLaunch()'的区别

wx.navigateTo():保留当前页面,跳转到应用内的某个页面。但是不能跳到tabbar页面

wx.redirectTo():关闭当前页面,跳转到应用内的某个页面。但是不允许跳转到tabbar页面

wx.switchTab():跳转到tabBar页面,并关闭其他所有非tabBar页面

wx.navigateBack():关闭当前页面,返回上一页面或多级页面。可通过getCurrentPages()获取当前的页面栈,决定需要返回几层

wx.reLaunch():关闭所有页面,打开到应用内的某个页面

typeof运算符和instanceof运算符以及isPrototypeOf()方法的区别

typeof是一个运算符,用于检测数据的类型,比如基本数据类型null、undefined、string、number、boolean,以及引用数据类型object、function,但是对于正则表达式、日期、数组这些引用数据类型,它会全部识别为object;

instanceof同样也是一个运算符,它就能很好识别数据具体是哪一种引用类型。它与isPrototypeOf的区别就是它是用来检测构造函数的原型是否存在于指定对象的原型链当中;而isPrototypeOf是用来检测调用此方法的对象是否存在于指定对象的原型链中,所以本质上就是检测目标不同。

call()和apply()的区别

实际上,apply和call的功能是一样的,只是传入的参数列表形式不同。apply(this对象,[参数1,参数2,…])即使只有一个参数,也要写进数组里call(this对象,参数1,参数2,…)它可以接受多个任意参数,第一个参数与apply一样,后面则是一串参数列表

给HTML元素添加data-*属性来传递我们需要的值,然后通过e.currentTarget.dataset或onload的param参数获取。但data-名称不能有大写字母,不可以存放对象

提高页面加载速度用户行为预测减少默认data的大小组件化方案

怎么解决小程序的异步请求问题

小程序支持大部分ES6语法在返回成功的回调里面处理逻辑Promise异步

小程序wxml与标准的html的异同?

小程序简单介绍下三种事件对象的属性列表?

小程序对wx:if和hidden使用的理解?

wx:if有更高的切换消耗。hidden有更高的初始渲染消耗。因此,如果需要频繁切换的情景下,用hidden更好,如果在运行时条件不大可能改变则wx:if较好

app.json是对当前小程序的全局配置,讲述三个配置各个项的含义?

小程序onPageScroll方法的使用注意什么?

由于此方法调用频繁,不需要时可以去掉,不要保留空方法,并且使用onPageScroll时,尽量避免使用setData(),尽量减少setData()的使用频次。

小程序视图渲染结束回调?

使用setData(data,callback),在callback回调方法中添加后续操作代码

小程序同步API和异步API使用时注意事项?

wx.setStorageSync是以Sync结尾的API为同步API,使用时使用try-catch来查看异常,如果判定API为异步,可以在其回调方法success、fail、complete中进行下一步操作。

1、将所有的接口放在统一的js文件中并导出。

2、在app.js中创建封装请求数据的方法。

3、在子页面中调用封装的方法请求数据。

小程序与原生App哪个好?

小程序除了拥有公众号的低开发成本、低获客成本低以及无需下载等优势,在服务请求延时与用户使用体验是都得到了较大幅度的提升,使得其能够承载跟复杂的服务功能以及使用户获得更好的用户体验。

webview中的页面怎么跳回小程序中?

首先要引入最新版的jweixin-x.x.x.js,然后

小程序导航的页面可以通过switchTab,但默认情况是不会重新加载数据的。若需加载新数据,则在success属性中加入以下代码即可:

小程序调用后台接口遇到哪些问题?

1、数据的大小有限制,超过范围会直接导致整个小程序崩溃,除非重启小程序;

优势:

1、无需下载,通过搜索和扫一扫就可以打开。

2、良好的用户体验:打开速度快。

3、开发成本要比App要低。

4、安卓上可以添加到桌面,与原生App差不多。

劣势:

1、限制较多。页面大小不能超过1M。不能打开超过5个层级的页面。

2、样式单一。小程序的部分组件已经是成型的了,样式不可以修改。例如:幻灯片、导航。

THE END
1.微信小程序其他组件webview内嵌微信小程序中的web-view组件是一个非常有用的工具,它允许开发者在小程序中嵌入外部网页。这对于希望在小程序中展示已有H5页面内容的开发者来说特别有用,不仅能够减少重复开发的工作量,还能利用现有的H5资源,实现快速迭代和更新。下面将详细介绍web-view组件的主要特性和使用方法。 https://blog.csdn.net/2401_88677290/article/details/143644231
2.微信小程序实现“转发给朋友”“分享到朋友圈”简介:微信小程序实现“转发给朋友”、“分享到朋友圈” Tips 1.低版本微信客户端打开时,会进入-一个升级提示页面 2.不支持在小程序页面内直接发起分享 3.自定义分享内容时不支持自定义页面路径 4.存在web-view组件的页面不支持发起分享 5.支持打开开发版、体验版,无权限人员进入时页面会提示无权限 https://developer.aliyun.com/article/1396467
3.微信小程序webview组件加载的页面,如何分享到朋友圈现在的问题是公司已经有一个资讯类的手机网站了,主要都是内容的展示,没有复杂的交互。老板想配套有个同款的小程序,于是用了小程序的webview一把梭套了进去,效果一切完美。https://segmentfault.com/q/1010000039363294/a-1020000039363829
4.小程序webview转发分享朋友圈AvaDong转战小程序 webview H5页面 的转发分享朋友圈功能 先说 小程序分享朋友圈的 功能实现 在小程序内部做分享,尚且需要用画布画出带有二维码的图片,在H5页面上更不用说了,根本就碰不着小程序的自己的api。老老实实画画布吧。 做的过程中发现以下几个问题: 1. IOS白屏打不开whttps://www.cnblogs.com/dongjingya/p/10291296.html
5.微信小程序配置了onShareTimeline分享到朋友圈,但是在开发者工具微信小程序配置了onShareTimeline分享到朋友圈,但是在开发者工具中这里始终是灰色的,在真机调试的时候也没有发现有分享到朋友圈的相关信息。 有说:使用web-view组件的页面支持分享发送给朋友不支持分享到朋友圈 折腾半天不如看官方文档。 换了一个项目看也是一样的,有分享给好友,但是分享到朋友圈的按钮在开发者工具https://blog.yyzq.team/post/336577.html
6.将慧表Web服务整体嵌入微信小程序附代码包点滴技术摘要:利用微信小程序web-view组件,1行代码将慧表NxCellsH5Web页面嵌入微信小程序,加几行代码再实现群发 微信小程序用户不需要下载软件,随用随取,用过自留痕迹,比需要下载的软件更利于推广。 不要被框架图吓到,其实关键的只有一行代码,画图只是为更多人理解。 https://weitue.com/index.php/article/70.html
7.taro框架打包ios的APP壳子taro框架的弊端2.5 分享好友/朋友圈 2.6 页面转发分享/长按图片识别 2.7 自定义顶部导航栏 2.8 弹出授权框 2.9 订阅消息 2.10 登录流程 三、总结 前言:微信小程序相信大家都不陌生,目前小程序开发主流的框架有微信原生开发,uni-app,以及今天的重点Taro。编者自身小程序开发经验也不多,仅针对自身在小程序开发中的问题做一次汇总,https://blog.51cto.com/u_16213574/9315442
8.微信公众号分享,微信小程序webview内嵌公众号网页分享功能实现需求:有一个做好的微信公众号项目(vue框架搭建的),还要做一个小程序版的,为了减少开发工作,全部使用web-view嵌入网页。 但要能分享,有二种分享情况 1、小程序分享出当前打开的页面 2、部分页面要求,分享指定页面,而不是当前的页面 以下是代码部分 一、web-view内嵌公众号网页中添加代码 http://www.jisuapp.cn/news/687.html
9.微信小程序webview源码(内嵌网页分享功能).zip微信小程序web-view源码(含内嵌网页分享功能)亲自测试ok,将app.js下域名换成自己的域名即可 微信web-view源码 web-view源码 分享源码 小程序分享2019-08-29 上传大小:11KB 所需:46积分/C币 微信小程序开发-企业版商城案例源码.zip 微信小程序开发-企业版商城案例源码.zip https://www.iteye.com/resource/qq_19668427-11638201
10.微信小程序分享到朋友圈按钮无效根据微信小程序开发文档,定义了 onShareTimeline 事件处理函数,点击右上角菜单,就会出现“分享到朋友圈”的按钮。 一般情况下,都是没有问题的。 不过,最近开发中发现一个页面,即使定义了 onShareTimeline ,分享到朋友圈也是无效的。害得我一个字母一个字母的检查,还以为是复制黏贴的时候,哪里搞错了…… https://www.zhuige.com/index/news/detail/id/931.html
11.百度/微信小程序自动化测试总结51Testing软件测试网小程序融合了Native app和web-app的特性,属于混合型应用(Hybrid App)。以爱奇艺视频微信小程序为例,上面的TopActionBar和下边的Bottom Action Bar是属于原生的组件,而中间是由webview渲染的,属于web应用。 对于安卓原生的UI组件,我们可以直接用UIAutomator查看元素属性,如下图所示 http://www.51testing.com/mobile/view.php?itemid=4458837
12.第三方服务分享《uniappAPI文档》值说明 WXSceneSession 分享到聊天界面 WXSenceTimeline 分享到朋友圈 WXSceneFavorite 分享到微信收藏miniProgram 值说明值类型说明 id String 微信小程序原始id path String 点击链接进入的页面 type Number 微信小程序版本类型,可取值: 0-正式版; 1-测试版; 2-体验版。 默认值为0。 webUrl String 兼容低版本的https://www.bookstack.cn/read/uniapp-api/149862
13.如何实现微信小程序中webview与小程序之间的数据传递与状态同步?火山引擎是字节跳动旗下的云服务平台,将字节跳动快速发展过程中积累的增长方法、技术能力和应用工具开放给外部企业,提供云基础、视频与内容分发、数智平台VeDI、人工智能、开发与运维等服务,帮助企业在数字化升级中实现持续增长。本页核心内容:如何实现微信小程序中webvhttps://www.volcengine.com/theme/3904628-R-7-1
14.微信小程序新组件web编辑推荐:关注微信小程序、微信小游戏、Node.js 和 Java 实时 Bug 监控,真的是一款非常好用的 Bug 监控服务,很多大公司都在用。 前言 微信小程序是可以直接运行网页的,web-view这个新组件的出现,可能直接导致小程序数量的一个高峰。本篇博文将从业务选型、微信小程序后端配置、使用web-view完成登录业务、实战中如https://m.bjhwtx.com/h-nd-193270.html
15.微信小程序开发文档这份微信小程序开发者文档是微信公众平台官方团队发布,由W3Cschool编辑整理完成,方便开发者查阅学习,并添加拓展了《微信小程序设计规范》等相关知识,使该文档内容更加丰富。_来自微信小程序开发文档,w3cschool编程狮。https://www.w3cschool.cn/weixinapp
16.GitHubmrabit/wxapp在微信小程序里,webviewH5向miniProgram通讯只能通过postMessage函数然而这个函数却很鸡肋,小程序官方文档是这样描述的:向小程序发送消息,会在特定时机(小程序后退、组件销毁、分享)触发组件的message事件而且小程序官方文档里没有提到miniProgram如何向webviewH5通讯在这个demo中, 展示了我是如何让webviewH5和miniProgram互相https://github.com/mrabit/wx_app_webview
17.微信小程序分享设置–蓝鲸分享小程序页面默认不可被分享到朋友圈,开发者需主动设置“分享到朋友圈”。 return返回值: onShareTimeline(){ return { title:'', query:'', } } 2.1.页面需设置允许“发送给朋友” 2.2.页面需设置允许“分享到朋友圈”,同时可自定义标题、分享图等。 https://www.49855.net/%E5%BE%AE%E4%BF%A1%E5%B0%8F%E7%A8%8B%E5%BA%8F%E5%88%86%E4%BA%AB%E8%AE%BE%E7%BD%AE/
18.uniapp:微信小程序内嵌h5页面分享给好友一、 小程序内嵌 h5 用 web-view <template><view@tap="tap"><web-view:src="web_url"></web-view></view></template> 二、实现 h5 页面分享, 首页要 进入的页面和 h5 页面要在主包里, 如下 image.png 三、h5 页面分享操作如下 onShareAppMessage(options){return{title:this.title,path:`/pages/https://www.jianshu.com/p/7989c5268020
19.微信小程序内嵌网页的一些(最佳)实践3 个月前,微信小程序推出了web-view组件引发了一波小高潮,笔者所在的大前端团队写过一篇浅析,详情可见:浅谈微信小程序前端生态。 我们曾大胆猜想,这一功能,可能直接导致小程序数量增长迎来一波高峰。 毕竟磨刀霍霍却一直资源不足的团队应该不少,现在可以把已有 H5 应用嵌入到小程序 web-view 容器中,以最低的开发成https://maimai.cn/article/detail?fid=283719933&efid=KQeQYPrgRDRwO0YD_H5Nkg