1.微信小程序组件的生命周期
答案:
生命周期函数
-onload:页面加载
一个页面只会调用一次,可以在onLoad中获取打开当前页面所调用的query参数。
-onShow:页面显示
每次打开页面都会调用一次
-onReady:页面初次渲染完成
一个页面只会调用一次,代表页面已经准备妥当,可以和视图层进行交互.
-onHide:页面隐藏
当navigateTo或底层tab切换时调用.
-onUnload:页面卸载
2.简单描述下微信小程序的相关文件类型
答案:微信小程序项目结构主要有四个文件类型,如下
.json后缀的JSON配置文件
.wxml后缀的WXML模板文件
.wxss后缀的WXSS样式文件
.js后缀的JS脚本逻辑文件
3.app.json是对当前小程序的全局配置,讲序三个配置各个项的含义
答案:pages字段-----用于描述当前小程序所有页面路径,
这是为了让微信客户端知道当前你的小程序页面定义在哪个目录。
window字段-----小程序所有页面的顶部背景颜色,文字颜色定义在这里的
tab字段----小程序全局顶部或底部tab
4.小程序的wxss和css有哪些不一样的地方
答案:
新像素单位:rpx
样式可直接使用import导入
5.小程序有哪些参数传值的方法
答案:给HTML元素添加data-*属性来传递我们需要的值,然后通过e.currentTarget.dataset
或onload的param参数获取。但data-名称不能有大写字母和不可以存放对象;
设置id的方法标识来传值通过e.currentTarget.id获取设置的id的值,然后
通过设置全局对象的方式来传递数值;在navigator中添加参数传值.
6.小程序有哪些参数传值的方法?
答案:
一、给HTML元素添加data-*属性来传递我们需要的值,然后通过e.currentTarget.dataset或
onload的param参数获取。但data-名称不能有大写字母和不可以存放对象
二、设置id的方法标识来传值通过e.currentTarget.id获取设置的id的值,然后通过设置全局对象
的方式来传递数值
三、在navigator中添加参数传值
7.如何提高微信小程序的应用速度?
答案:
①提高页面加载速度
②用户行为预测
③减少默认data的大小
④组件化方案
8.微信小程序与H5的区别?
答案:第一条是运行环境的不同
传统的HTML5的运行环境是浏览器,包括webview,而微信小程序的运行
环境并非完整的浏览器,是微信开发团队基于浏览器内核完全重构的
一个内置解析器,针对小程序专门做了优化,配合自己定义的开发语言标准,
提升了小程序的性能。
第二条是开发成本的不同
只在微信中运行,所以不用再去顾虑浏览器兼容性,不用担心生产环境中出现不可预料的奇妙BUG
第三条:是获取系统级权限的不同
接系统级权限都可以和微信小程序无缝接。
9.小程序获取场景值的方法
let options=wx.getLanchOptionsSync()
10.小程序onPageScroll方法的使用注意什么
由于此方法调用频繁,不需要时,可以去掉,不要保留空方法,并且使用onPageScroll时,
尽量避免使用setData(),尽量减少setData()的使用频次。
11.小程序视图渲染结束回调
使用setData(data,callback),在callback回调方法中添加后续操作代码
12.小程序同步API和异步API使用时注意事项
像wx.setStorageSync这种以Sync结尾的API为同步API,使用时使用try-catch来查看异常,
如果判定API为异步,可以在其回调方法success、fail、complete中进行下一步操作.
13.小程序对wx:if和hidden使用的的理解
wx:if 有更高的切换消耗
hidden 有更高的初始渲染消耗
因此,如果需要频繁切换的情景下,用hidden更好,
如果在运行时条件不大可能改变则wx:if较好。
14.小程序简单介绍下三种事件对象的属性列表
基础事件(BaseEvent)
type:事件类型
timeStamp:事件生成时的事件戳
target:触发事件的组件的属性值集合
currentTarget:当前组件的一些属性集合
自定义事件(CustomEvent)
detail
触摸事件(TouchEvent)
touches
changedTouches
15.小程序的双向绑定和vue的异同?
答案:大体相同,但小程序直接this.data的属性是不可以同步到视图的,
必须调用this.setData()方法.
16.小程序页面间有哪些传递数据的方法?
答案:使用全局变量实现数据传递
页面跳转或重定向时,使用url带参数传递数据
使用组件模板template传递参数
使用数据库传递数据
17.小程序wxml与标准的html的异同?
答案:都是用来描述页面的结构;
都由标签、属性等构成;
标签名字不一样,且小程序标签更少,单一标签更多;
多了一些wx:if这样的属性以及{{}}这样的表达式
WXML仅能在微信小程序开发者工具中预览,儿HTML可以在浏览器内预览.
组件封装不同,WXML对组件进行了重新封装,小程序运行在JS Core内,
没有DOM树和window对象,小程序无法使用window对象和document对象.
18.小程序WXSS和CSS的异同?
答案:都是用来描述页面的样子;
WXSS具有CSS大部分的特性,也做了一些扩充和修改;
WXSS新增了尺寸单位,WXSS在底层支持新的尺寸单位rpx;
WXSS仅支持部分CSS选择器;
WXSS提供全局样式与局部样式