微信小程序部分习题 - 新闻资讯 - 云南小程序开发|云南软件开发|云南网站建设-昆明葵宇信息科技有限公司

159-8711-8523

云南网建设/小程序开发/软件开发

知识

不管是网站,软件还是小程序,都要直接或间接能为您产生价值,我们在追求其视觉表现的同时,更侧重于功能的便捷,营销的便利,运营的高效,让网站成为营销工具,让软件能切实提升企业内部管理水平和效率。优秀的程序为后期升级提供便捷的支持!

您当前位置>首页 » 新闻资讯 » 小程序相关 >

微信小程序部分习题

发表时间:2020-11-19

发布人:葵宇科技

浏览次数:31

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配置和搭建打包文件上传服务器