序言:前端工程师不再是掌握html、css、jquery这些基础的工作,还需要掌握小程序开发的经验,今天把面试中常见的小程序面试题分享出来,一块学习学习。
简单描述下微信小程序的相关文件类型?
- WXML (WeiXin Markup Language)是框架设计的一套标签语言,结合基础组件、事件系统,可以构建出页面的结构。内部主要是微信自己定义的一套组件。与html差不多。
- WXSS (WeiXin Style Sheets)是一套样式语言,用于描述 WXML 的组件样式,与css差不多
- Js 逻辑处理,网络请求
- Json 小程序设置,如页面注册,页面标题及tabBar。
有哪些参数传值的方法?
- 给HTML元素添加data-*属性来传递我们需要的值,然后通过e.currentTarget.dataset或onload的param参数获取。
- 设置id 的方法标识来传值通过e.currentTarget.id获取设置的id的值,然后通过设置全局对象的方式来传递数值
- 在navigator中添加参数传值(?传的值的名称=所传的值在onLoad(option)用option来接收并获取)
小程序与原生App哪个好?
小程序的优点:
- 基于微信平台开发,享受微信本身自带的流量,这个是最大的优势
- 无需安装,只要打开微信就能用,不占用用户手机内存,体验好
- 开发周期短,一般最多一个月可以上线完成
- 开发所需的资金少,所需资金是开发原生APP一半不到
- 小程序名称是唯一性的,在微信的搜索里权重很高
- 容易上手,只要之前有HTML+CSS+JS基础知识,写小程序基本上没有大问题;当然如果了解ES6+CSS3则完全可以编写出即精简又动感的小程序;
- 基本上不需要考虑兼容性问题,只要微信可以正常运行的机器,就可以运行小程序;
- 发布、审核高效,基本上上午发布审核,下午就审核通过,升级简单,而且支持灰度发布;
- 开发文档比较完善,开发社区比较活跃;
10.最近刚开放的牛x功能,新增webview组件,可以展示网页啦,这个比较爽;
11.支持插件式开发,一些基本功能可以开发成插件,供多个小程序调用;
缺点:
1.局限性很强,(比如页面大小不能超过1M。不能打开超过5个层级的页面。样式单一。小程序的部分组件已经是成型的了,样式不可以修改。例如:幻灯片、导航。)只能依赖于微信依托于微信,无法开发后台管理功能。
2.不利于推广推广面窄,不能分享朋友圈,只能通过分享给朋友,附近小程序推广。其中附近小程序也受到微信的限制
3.后台调试麻烦,因为API接口必须https请求,且公网地址,也就是说后台代码必须发布到远程服务器上;
4.前台测试有诸多坑,最头疼莫过于模拟器与真机显示不一致
原生App优点:
- 原生的响应速度快
- 对于有无网络操作时,譬如离线操作基本选用原生开发
- 需要调用系统硬件的功能(摄像头、方向传感器、重力传感器、拨号、GPS、语音、短信、蓝牙等功能)
- 在无网络或者弱网的情况下体验好。
缺点:
- 开发周期长,开发成本高
- 需要下载
小程序的发布流程(开发流程)
- 注册微信小程序账号
- 获取微信小程序的 AppID
- 下载微信小程序开发者工具
- 创建demo项目
- 去微信公众平台配置域名
- 手机预览
- 代码上传
- 提交审核
- 小程序发布
webview中的页面怎么跳回小程序中?
1.首先,需要在你的html页面中引用一个js文件。
<script type=”text/javascript” src=”https://res.wx.qq.com/open/js/jweixin-1.3.0.js”></script>
2.然后为你的按钮标签注册一个点击事件:
$(“.kaiqi”).click(function(){
wx.miniProgram.redirectTo({url: ‘/pages/indexTwo/indexTwo’})
});
3.这里的redirectTo跟小程序中的wx.redirectTo()跳转页面是一样的,会关闭当前页跳转到页面。
4.你也可以替换成navigateTo,跳转页面不会关闭当前页。
小程序还有哪些功能?
客服功能,录音,视频,音频,地图,定位,拍照,动画,canvas