1.1、小程序的开发步骤或流程是什么?
a、登录微信公众号官网,申请小程序账号
b、获取appId ,appScert
c、下载开发者工具
b、创建第一个小程序项目
1.2、小程序的实现原理是什么?
小程序主要使用的是前端技术栈:wxml wxss js
和常规的前端有相似之处但又有所不同
wxml: 展示小程序的界面,使用的xml语法
js : 小程序的js是运行在微信App中的
wxss: 拥有大部分的css特性
在ios中,小程序的javascript运行在javascriptCore中
在Android中,小程序的javascript是通过X5内核来解析的
2、怎么封装微信小程序的数据请求的?
答:一、将所有的接口放在统一的js文件中并导出;
二、在app.js中创建封装请求数据的方法;
三、在子页面中调用封装的方法请求数据。
自己的blog参考链接:https://blog.csdn.net/qq_37672347/article/details/99679399
3、小程序中实现登录
a.使用wx.login获取code值
b.使用wx.request请求后台的api,把code值作为参数发送给后台
后台会根据我们传过去的code值来获取openid和session_key
微信官方建议:为了安全不要直接采用openid和session_key来作为用户身份的标识
把微信账号登录态生成一个session id并维护在我们自己的session机制中,然后把这session id派发到小程序客户端作为session标识来使用。
c.把session_id保存到本地,使用wx.setStorage保存到本地,
d.在你需要使用的地方session_id的地方调用wx.getStorage(建议你也可以封装一个方法,就可以很方便的取出你要的数据)
f.在你调用那些需要后台登录才可以访问的接口的时候,就可以把session_id作为参数加到header或者query里面就可以了
*使用wx.checkSession来检测登录状态是否过期,如果过期了才调用登录接口,而不是每次进入小程序都调用登录接口,这样也可以优化页面加载速度
4、 bindtap和catchtap的区别是什么?
bind事件绑定不会阻止冒泡事件向上冒泡,catch事件绑定可以阻止冒泡事件向上冒泡
5、 简单描述下微信小程序的相关文件类型。
小程序:pages ——index:index.js(页面逻辑) /index.wxml (页面结构)/index.wxss (页面样式表) / index.json (页面配置)
App.js 小程序逻辑
App.json 小程序公共设置
App.wxss 小程序公共样式表
6、 小程序有哪些参数传值的方法?
答:一、给HTML元素添加data-*属性来传递我们需要的值,然后通过e.currentTarget.dataset或onload的param参数获取。但data-名称不能有大写字母和不可以存放对象;
二、设置id 的方法标识来传值通过e.currentTarget.id获取设置的id的值,然后通过设置全局对象的方式来传递数值;
三、在navigator中添加参数传值。
四、设置全局变量globalData,
五、缓存
1、设置id的方法标识跳转后传递的参数值;
2、通过使用data - xxxx 的方法来标识要传递的值
微信小程序设置id的方法标识来传值
在要跳转的item处,设置一个id并给当前的id赋值上对应的key值,比如一部电影的id(后面带着id去下一个页面查询,详细信息)如:
后我们在js的bindtap的响应事件中获取,并传递到下一个界面中;
获取到id传的值
通过e.currentTarget.id;获取设置的id值,并通过设置全局对象的方式来传递数值,
获取全局对象 var app=getApp(); //设置全局的请求访问传递的参数 app.requestDetailid=id;
提示:其实我们也可以在,wxml中查看到我们设置的每一个item的id值
通过使用data - xxxx 的方法标识来传值
通过使用data - xxxx 的方法标识来传值,xxxx可以自定义取名 比如data-key等等都可以。
如何获取data-xxxx传递的值?
在js的bindtap的响应事件中:
通过数据解析一层层找到数据,var id=e.target.dataset.id(根据你的data-id的取名)
微信小程序如何跨页面获取值?
依据上面的方式设置要传递的值,页面跳转后,我们就需要在下一个页面拿到传递的数据(这个数据在传递前,就已经被设置成全局变量)
在跳转后的js页面,接收传递过来的数据detail.js
同样通过全局额方式取值出来,(即和app.js中取某个变量的值是一样的)
var movieid=ge