微信小程序部分习题
发表时间:2020-11-19
发布人:葵宇科技
浏览次数:38
1. 简单描述下微信小程序的目录结构?
app.js 小程序逻辑
app.json 小程序公共配置
app.wxss 小程序公共样式表
js 页面逻辑
wxml 页面结构
json 页面配置
wxss 页面样式表
2. wxml与标准的html的异同?
开发工具限制:WXML仅能在微信小程序开发工具中预览,而HTML可以在浏览器内预览。
组件封装不同:WXML对组件进行了重新封装,为后续的性能优化提供了可能,
同时避免开发者写出低质量的代码。
没有DOM树:小程序运行在JS Core内,没有DOM树和window对象,没有办法使用相关API。
3. 小程序怎样进行本地存储的读写?
同步:(1)wx.setStorageSync(); //存储值
(2)wx.removeStorageSync(); // 移除指定的值
(3)wx.getStorageSync(); // 获取值
(4)wx.getStorageInfoSync(); // 获取当前 storage 中所有的 key
(5)wx.clearStorageSync(); // 清除所有的key
异步:(1)wx.setStorage(); //存储值
(2)wx.removeStorage(); // 移除指定的值
(3)wx.getStorage(); // 获取值
(4)wx.getStorageInfo(); // 获取当前 storage 中所有的 key
(5)wx.clearStorage(); // 清除所有的key
4. 分析下微信小程序的优劣势?
微信小程序优势:
1)、使用方便:扫码即用,相较于APP而言不用下载、不用安装,
还可以直接添加到手机桌面,为手机节省了电量和大量内存;
2)、流量入口众多:公众号菜单、朋友圈(太阳码)、微信群、
支持长按二维码识别、附近的小程序、统一的小程序入口、搜一搜、
公众号图文推送、支持发会员卡券(官方的)、支持会员卡直接打开小程序;
3)、潜在用户多:小程序依托在微信9亿多用户群体上,不用担心找不到用户,
只需专心做好小程序营销;
4)、助力新零售:小程序是新零售的最好载体,将是未来线下门店的发展趋势,
如果企业拥有线下实体门店,小程序是最佳选择,可以为企业更好地切合线上线下的流量;
5)、符合消费场景:小程序可以与消费者在任意场景建立链接,即用即走,符合大多数消费场景。
微信小程序劣势:
1)、功能不多:微信小程序属于微信,自然也就受限于微信。
由于API的限制,小程序的总代码量不能超过2M,这意味着小程序规模有限,
这对一些中大型的应用而言是一个致命的缺陷。
目前相较于APP而言,微信小程序只是能够实现基本操作,
虽然随着开发技术的发展,小程序已经和APP很接近,但差距肯定是存在的;
2)、所有更新需要经过腾讯的审核,才能应用到小程序中,
这给应用的更新带来一定的风险,企业希望新加的功能若无法审核通过,
则毫无解决办法;
3)、不能用小程序来发推送通知,必须要由用户操作才可以;
4)、小程序无法被分享到微信朋友圈,错失这一流量巨大的入口;
5)、用户留存差,正是因为即用即走的特点,微信小程序对于用户的留存相较于APP、
微信公众号都是非常薄弱的,这就要求企业的营销能力非常突出,
才能持续增加用户对小程序的粘性。
5. 小程序的数据驱动和vue的双向绑定有何异同?
小程序中的数据双向绑定
(1)、通过 bindinput 绑定文本框的输入事件
(2)、在 data 中声明一个变量 content ,将其动态绑定成文本框的 value 值
(3)、在 bindinput 事件中通过事件参数 e.detail.value 可以获取到文本框中最新的 value 值
(4)、通过 this.setData 将文本框最新的 value 值 赋值给 动态绑定的value值 content 即可实现数据的双向绑定
vue中的数据双向绑定
(1)、首先为文本框绑定 @input 监听文本框的输入事件
(2)、为文本框动态绑定 value 属性,其值是在data中定义的变量
(3)、在 @input绑定的事件中 通过事件参数 event.target.value 可以获取到 input 框中最新的value值
(4)、将其重新获取到的 value 赋值给 value值动态绑定的那个变量
区别
绑定事件不同,以及获取value值的具体方式不同,
以及在小程序中设置data中的数据,
需要调用 this.setData方法进行设置
6. 简述下wx.navigateTo(), wx.redirectTo(), wx.switchTab(), wx.navigateBack(), wx.reLaunch()的区别?
(1)wx.navigateTo():
用于保留当前页面、跳转到应用内的某个页面,使用 wx.navigateBack可以返回到原页面。
对于页面不是特别多的小程序,通常推荐使用 wx.navigateTo进行跳转,
以便返回原页面,以提高加载速度。
当页面特别多时,则不推荐使用。
(2)wx.redirectTo():
当页面过多时,被保留页面会挤占微信分配给小程序的内存,
或是达到微信所限制的 5 层页面栈。这时应该考虑选择 wx.redirectTo。
wx.redirectTo()用于关闭当前页面,跳转到应用内的某个页面。
这样的跳转,可以避免跳转前页面占据运行内存,但返回时页面需要重新加载,
增加了返回页面的显示时间。
(3)wx.reLaunch():
wx.reLaunch()与 wx.redirectTo()的用途基本相同,
只是 wx.reLaunch()先关闭了内存中所有保留的页面,
再跳转到目标页面。
(4)wx.switchTab():
对于跳转到 tab bar 的页面,
最好选择 wx.switchTab(),它会先关闭所有非 tab bar 的页面。
其次,也可以选择 wx.reLaunch(),它也能实现从非 tab bar 跳转到 tab bar,
或在 tab bar 间跳转,效果等同 wx.switchTab()。
使用其他跳转 API 来跳转到 tab bar,则会跳转失败。
(5)wx.navigateBack():
用于关闭当前页面,并返回上一页面或多级页面。
开发者可通过 getCurrentPages() 获取当前的页面栈,决定需要返回几层。
这个 API 需要填写的参数只有 delta,表示要返回的页面数。
若 delta 的取值大于现有可返回页面数时,则返回到用户进入小程序的第一个页面。
当不填写 delta 的值时,就默认其为 1(注意,默认并非取 0),即返回上一页面。
7. 小程序页面路由传参方法?
通过路径传递参数:wx.navigateTo()、wx.redirectTo()和标签<navigator/>等
参数与路径之间使用?分隔,参数键与参数值用=相连,不同参数用&分隔
例:test?id=1 中id为参数键,1 为参数值
在目的页面中onLoad()方法中option对象即为参数对象,可以通过参数键来取出参数值
8. 请说明小程序的生命周期以及页面生命周期
小程序生命周期
小程序的生命周期函数是在app.js里面调用的,App(Object)函数用来注册一个小程序。
接受一个 Object 参数,指定其小程序的生命周期回调;一般有onLaunch监听小程序初始化、
>页面的生命周期
页面生命周期函数就是当你每进入/切换到一个新的页面的时候,就会调用的生命周期函数。
Page(Object) 函数用来注册一个页面。接受一个Object类型参数,
其指定页面的初始数据、生命周期回调、事件处理函数等。
9. 小程序如何刷新当前页面?
方法一:this.onLoad()
方法二:this.onReady() 或者 this.onShow()
方法三:定义标志
在app.js中,定义一个全局变量Flag,默认值为false,
进入其它页面的时候将它置为true,在页面的onShow方法里加一个判断,如果Flag为true的话,
先将它的值设置为false,再调用接口获取数据。
10. 小程序中获取openid的方法?
第一步,获取code
第二步,根据code获取openid和session_key
第三步,检测用户登录状态是否有效
具体内容见:“https://blog.csdn.net/llayjun/article/details/78291641”
11. 小程序中获取用户的手机号需要请求哪些aip?并且解密的参数有哪些?
12. 在小程序中设置背景图片在开发者工具中可以显示背景图片,但是在手机上背景图片不显示,怎么解决?
图片转成Base64格式
在线转换:https://www.sojson.com/image2base64.html
13. 小程序中页面跳转传参的方式有哪些?
微信小程序导航有两种形式:一种是在写在js中进行跳转,
另一种是写在wxml页面中进行跳转。
14. webview页面的使用有哪些要求
15. bindtap和catchtap的区别?
bindtap会一直触发上边的点击事件,不会阻止冒泡事件
catchtap只会执行自己的事件,直接阻止冒泡事件。
16. wx:if 和v-show 的区别?
17. 如何实现下拉刷新?
wx.startPullDownRefresh()
开始下拉刷新。调用后触发下拉刷新动画,效果与用户手动下拉刷新一致。
18. 请写出小程序的完整开发流程
(1)申请小程序账号
(2)申请服务器域名
(3)下载并安装开发工具(登录注册的账号)
(4)小程序框架配置并开发
(5)window服务器IIS配置和搭建打包文件上传服务器