小程序的生命周期:
- onLoad() 页面加载时触发,只会调用一次,可获取当前页面路径中的参数。
- onShow() 页面显示/切入前台时触发,一般用来发送数据请求;
- onReady() 页面初次渲染完成时触发, 只会调用一次,代表页面已可和视图层进行交互。
- onHide() 页面隐藏/切入后台时触发, 如底部 tab 切换到其他页面或小程序切入后台等。
- onUnload() 页面卸载时触发,如redirectTo或navigateBack到其他页面时。
- onPullDownRefresh() 下拉刷新的钩子函数 用户下拉刷新时会自动走到这个函数中
- onReachBottom() 上翻到底的钩子函数
本质就是一个单页面应用,所有的页面渲染和事件处理,都在一个页面内进行,但又可以通过微信客户端调用原生的各种接口;
- 它的架构,是数据驱动的架构模式,它的UI和数据是分离的,所有的页面更新,都需要通过对数据的更改来实现;
- 它从技术讲和现有的前端开发差不多,采用JavaScript、WXML、WXSS三种技术进行开发;
- 功能可分为webview和appService两个部分;
- webview用来展现UI,appService有来处理业务逻辑、数据及接口调用;
- 两个部分在两个进程中运行,通过系统层JSBridge实现通信,实现UI的渲染、事件的处理等。
小程序的双向绑定和vue的异同
大体相同,但小程序直接this.data的属性是不可以同步到视图的,必须调用this.setData()方法!
微信小程序怎么进行双向绑定
- 通过bind-tap点击事件 向app.js 定义的方法中获取回执
- 设置data的值 实现双向绑定
小程序之间的页面传值:
- 设置id的方法标识来传值,通过e.currentTarget.id获取设置的id的值,然后通过设置全局对象的方式来传递数值
- 在navigator中添加参数数值
-
getCurrentPages() 函数用于获取当前页面栈的实例,以数组形式按栈的顺序给出,第一个元素为首页,最后一个元素为当前页面。
封装微信小程序的数据请求的?
- 将所有的接口放在统一的js文件中并导出
- 在app.js中创建封装请求数据的方法
- 在子页面中调用封装的请求数据
- 使用全局变量实现数据传递
- 页面跳转或重定向时,使用url带参数传递数据
- 使用组件模板template传递参数
- 使用缓存传递参数
- 使用数据库传递参数
微信支付的 流程是否可以简单说一下?
- 临时凭证 获取 wxid
- 生成repayid
- json,返回给小程序,小程序调支付窗口。
- 支持成功提示 + POST回调。
如何自定义tabbar?
创建一个compent文件夹,里面创建一个tabbar页面,取消原有的tabbar页面。需要在app.json中输入compent:ture,在自定义的pages页面中写入<tabbar selected="{{0}}"></tabbar>进行选中效果显示