首先说一些为何总结小程序相关的面试题吧css
咱们能够随便打开一个招聘网站,在那里你会发现市场对于小程序的需求仍是蛮高的,有些公司可能就只须要写小程序的前端人员html
虽然小程序的开发很大一部分都是很简单的,可是有些经常使用的东西仍是有必要了解一下的。故此,有了这样一篇小程序面试题的总结。固然感兴趣或者有须要的小伙伴也能够 点击这里,查看完整版前端面试题前端
若是文章中有出现纰漏、错误之处,还请看到的小伙伴留言指正,先行谢过vue
如下 ↓git
微信小程序项目结构主要有四个文件类型
WXML
(WeiXin Markup Language)是框架设计的一套标签语言,结合基础组件、事件系统,能够构建出页面的结构。内部主要是微信本身定义的一套组件WXSS
(WeiXin Style Sheets)是一套样式语言,用于描述 WXML
的组件样式js
逻辑处理,网络请求json
小程序设置,如页面注册,页面标题及tabBar
主要文件
app.json
必需要有这个文件,若是没有这个文件,项目没法运行,由于微信框架把这个做为配置文件入口,整个小程序的全局配置。包括页面注册,网络设置,以及小程序的 window
背景色,配置导航条样式,配置默认标题app.js
必需要有这个文件,没有也是会报错!可是这个文件建立一下就行 什么都不须要写之后咱们能够在这个文件中监听并处理小程序的生命周期函数、声明全局变量app.wxss
可选微信小程序采用JavaScript
、WXML
、WXSS
三种技术进行开发,本质就是一个单页面应用,全部的页面渲染和事件处理,都在一个页面内进行,但又能够经过微信客户端调用原生的各类接口微信的架构,是数据驱动的架构模式,它的
UI
和数据是分离的,全部的页面更新,都须要经过对数据的更改来实现github小程序分为两个部分
webview
和appService
。其中webview
主要用来展示UI
,appService
有来处理业务逻辑、数据及接口调用。它们在两个进程中运行,经过系统层JSBridge
实现通讯,实现UI
的渲染、事件的处理web
小程序直接 this.data
的属性是不能够同步到视图的,必须调用:面试
this.setData({ // 这里设置 })
WXSS
和CSS
相似,不过在CSS
的基础上作了一些补充和修改
rpx
rpx
是响应式像素,能够根据屏幕宽度进行自适应。规定屏幕宽为 750rpx
。如在 iPhone6
上,屏幕宽度为 375px
,共有 750
个物理像素,则 750rpx = 375px = 750
物理像素json
@import
标识符来导入外联样式。@import
后跟须要导入的外联样式表的相对路径,用;表示语句结束/** index.wxss **/ @import './base.wxss'; .container{ color: red; }
在 app.js
文件中定义全局变量 globalData
, 将须要存储的信息存放在里面小程序
// app.js App({ // 全局变量 globalData: { userInfo: null } })
使用的时候,直接使用 getApp()
拿到存储的信息
wx.navigateTo
与 wx.redirectTo
的时候,能够将部分数据放在 url
里面,并在新页面 onLoad
的时候初始化//pageA.js // Navigate wx.navigateTo({ url: '../pageD/pageD?name=raymond&gender=male', }) // Redirect wx.redirectTo({ url: '../pageD/pageD?name=raymond&gender=male', }) // pageB.js ... Page({ onLoad: function(option){ console.log(option.name + 'is' + option.gender) this.setData({ option: option }) } })
须要注意的问题:
wx.navigateTo
和 wx.redirectTo
不容许跳转到 tab
所包含的页面
onLoad
只执行一次
Storage
相关onLoad
页面加载时触发。一个页面只会调用一次,能够在 onLoad
的参数中获取打开当前页面路径中的参数onShow()
页面显示/切入前台时触发onReady()
页面初次渲染完成时触发。一个页面只会调用一次,表明页面已经准备稳当,能够和视图层进行交互onHide()
页面隐藏/切入后台时触发。 如 navigateTo
或底部 tab
切换到其余页面,小程序切入后台等onUnload()
页面卸载时触发。如 redirectTo
或 navigateBack
到其余页面时详见 生命周期回调函数
参考 这里
一、提升页面加载速度
二、用户行为预测
三、减小默认 data
的大小
四、组件化方案
优点
App
低缺点
App
要深不少
小程序支持大部分
ES6
语法
Promise
异步若是开发者拥有多个移动应用、网站应用、和公众账号(包括小程序),可经过unionid
来区分用户的惟一性,由于只要是同一个微信开放平台账号下的移动应用、网站应用和公众账号(包括小程序),用户的unionid
是惟一的。换句话说,同一用户,对同一个微信开放平台下的不一样应用,unionid
是相同的
config
中的 window
配置 enablePullDownRefresh
Page
中定义 onPullDownRefresh
钩子函数,到达下拉刷新条件后,该钩子函数执行,发起请求方法wx.stopPullDownRefresh
中止下拉刷新参考 这里
相同点:首先他们都是做为点击事件函数,就是点击时触发。在这个做用上他们是同样的,能够不作区分
不一样点:他们的不一样点主要是bindtap是不会阻止冒泡事件的,catchtap是阻值冒泡的
wx.navigateTo()
, wx.redirectTo()
, wx.switchTab()
, wx.navigateBack()
, wx.reLaunch()
的区别</h5>tabbar
页面tabbar
页面abBar
页面,并关闭其余全部非 tabBar
页面getCurrentPages()
获取当前的页面栈,决定须要返回几层不少东西真正作一遍,收获必定是最大的,那些途中踩过的坑、迸发的灵性火花都是咱们成长路上宝贵的东西
后面仍是会不按期更新一些面试题或者有意思的东西,分享给有须要的小伙伴
最后,推荐一波 GitHub完整版面试题 欢迎小伙伴们 star
关注
以上