文章目录
前言
1 微信小程序的相关文件类型
1. 1项目结构
-WXML WeiXin Markup Language 是框架设计的一套标签语言 -WXSS WeiXin Style Sheets/ʃiːts/ 是一套样式语言,用于描述 WXML 的组件样式 -js 逻辑处理 -json 小程序设置1.2主要文件
app.json,必须要有,没有的话项目无法运行 · app.js 必须要有,没有会报错 app.wxss 可选2 简述微信小程序原理
* 微信小程序采用 JavaScript、WXML、WXSS 三种技术进行开发,一个单页面应用,所有页面对对渲染和事件处理,都在一个页面进行
* 微信的架构,是数据驱动的架构模式,它的 UI 和数据是分离的,
* 小程序分为两个部分 webview 和 appService/ˈsɜːvɪs/ 。
* webview展示UI,appService处理逻辑/数据/接口调用。
* 是多线程的
* 通过JSBridge/brɪdʒ/ 实现通信,实现 UI 的渲染、处理事件
3 小程序的双向绑定和vue哪里不一样
小程序直接this.data的属性是不可以同步到视图的,必须调用
this.setData({//这里设置})
主要是数据的更新 vue进行了数据劫持,小程序
4 小程序的wxss和css有哪些不一样的地方?
WXSS 和 CSS 类似,不过在 CSS 的基础上做了一些补充和修改
* 尺寸单位 rpx ====响应式像素 可以根据屏幕宽度进行自适应。
* 规定屏幕宽为 750rpx。如在 iPhone6 上,屏幕宽度为 375px,共有 750 个物理像素,则 750rpx = 375px = 750 物理像素 1rpx=0.5像素
* 使用 @import 标识符来导入外联样式。
5 小程序页面间有哪些传递数据的方法
* 使用全局变量实现数据传递, 在app.js文件中定义全局变量globalData,讲需要存储的信息放在里面,使用的时候使用getApp()
* 使用wx.navigateTo与wx.redirectTo 的时候,可将部分数据放在url里面,并在新的页面 onLoad 的时候初始化
* - 需要注意的问题:
wx.navigateTo 和 wx.redirectTo 不允许跳转到 tab 所包含的页面
onLoad 只执行一次
* 本地缓存 Storage
6 小程序的生命周期函数
分为三步
- 全局生命周期函数
- 页面生命周期函数
- 组件生命周期函数
全局生命周期
* onLaunch(初始化完成时,全局触发一次)
* onshow(启动时调用)
* onhide(切换到后台)
* onError()
页面生命周期
onLoad 页面加载的时候触发。只执行一次
onShow() 页面显示/切入前台的时候触发
onReady()页面初次渲染的时候触发,只执行一次
onHide()页面隐藏/切入后台时触发。 如 navigateTo 或底部 tab 切换到其他页面,
小程序切入后台等。 监听页面加载
onUnload()页面卸载时触发,如redirectTo或navigateBack到其他页面时。
组件生命周期:
created 组件实例刚创建时执行
attached/əˈtætʃt/ 组件实例进入页面节点数时执行
ready 视图布局完成后执行
moved 组件被移动到节点数另一个位置时执行
detached /dɪˈtætʃt/ 从页面节点树移除是执行
error 抛出错误时执行
7 怎么封装微信小程序的数据请求?
用promise把 wx.request封装
8 请说一下小程序的授权登录?
9 哪些方法可以用来提高微信小程序的应用速度?
- 提高页面加载速度
- 用户行为预测
- 减少默认 data 的大小
- 组件化方案
10 怎么解决小程序的异步请求问题?
- 小程序支持大部分 ES6 语法
- 返回成功的回调里处理逻辑
- Promise 异步