1 、如何获得用户的授权信息?(必会)
通过绑定按钮 bindgetuserinfo 事件和小程序 wx.getSetting() 方法获取
2、数据绑定如何实现?(必会)
在 minapp 中,你只需要在 wxml 模板中给组件的属性名后加上 .sync 就可以实现双向绑定
3、列表渲染如何实现?(必会)
在 wxml 标签添加 wx:for 属性并赋值循环数据即可渲染
4、条件渲染如何实现?(必会)
在 wxml 标签添加 wx:if 属性并赋值判断变量即可渲染
5、公共模板怎样建立?(必会)
使用 name 属性,作为模板的名字。然后在内定义代码片段,如
6、事件及事件绑定是什么?(必会)
事件是视图层到逻辑层的通讯方式
事件可以将用户的行为反馈到逻辑层进行处理
事件可以绑定在组件上,当达到触发事件,就会执行逻辑层中对应的事件处理函数
事件对象可以携带额外信息,如 id, dataset, touches
事件分为冒泡事件和非冒泡事件:
冒泡事件:当一个组件上的事件被触发后,该事件会向父节点传递
非冒泡事件:当一个组件上的事件被触发后,该事件不会向父节点传递。事件绑定的写法
类似于组件的属性,如Click here!
7、页面跳转的方式有哪些?(必会)
使用导航组件实现,例如
通过内置 api 实现,例如 wx.redirectTo({url: '/pages/home/home'})、 wx.navigateBack({delta: 1})、wx.navigatorTo({url:'/pages/home/home'})
8、如何获取用户收货地址?(必会)
9、tabBar配置参数有哪些?(必会)
10、页面生命周期包含那几个?(必会)
官方文档: https://developers.weixin.qq.com/miniprogram/dev/framework/app-service/page-life-cycle.html
onload() 页面加载时触发。一个页面只会调用一次,可以在 onLoad 的参数中获取打开当前页面路径中的参数 onShow() 页面显示/切入前台时触发 onReady() 页面初次渲染完成时触发。一个页面只会调用一次,代表页面已经准备妥当,可以和视图层进行交互 onHide() 页面隐藏/切入后台时触发。 如 navigateTo 或底部 tab 切换到其他页面,小程序切入后台等 onUnload() 页面卸载时触发。如 redirectTo 或 navigateBack 到其他页面时
11、转发分享如何实现?(必会)
官方文档:https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/share.html
转发: 获取更多转发信息 通常开发者希望转发出去的小程序被二次打开的时候能够获取到一些信息,例如群的标识。现在通过调用 wx.showShareMenu 并且设置withShareTicket 为 true ,当用户将小程序转发到任一群聊之后,此转发卡片在群聊中被其他用户打开时,可以在 App.onLaunch 或 App.onShow 获取到一个 shareTicket。通过调用 wx.getShareInfo 接口传入此 shareTicket 可以获取到转发信息。
页面内发起转发 基础库 1.2.0 开始支持,低版本需做兼容处理。
通过给 button 组件设置属性 open-type="share",可以在用户点击按钮后触发 Page.onShareAppMessage 事件,相关组件:button。
12、如何获取地理位置?(必会)
13、如何封装自定义组件?(必会)
文档:https://developers.weixin.qq.com/miniprogram/dev/framework/custom-component/
自定义组件 从小程序基础库版本 1.6.3 开始,小程序支持简洁的组件化编程。所有自定义组件相关特性都需要基础库版本 1.6.3 或更高。
开发者可以将页面内的功能模块抽象成自定义组件,以便在不同的页面中重复使用;也可以将复杂的页面拆分成多个低耦合的模块,有助于代码维护。自定义组件在使用时与基础组件非常相似。
创建自定义组件 类似于页面,一个自定义组件由 json wxml wxss js 4个文件组成。要编写一个自定义组件,首先需要在 json 文件中进行自定义组件声明(将 component 字段设为 true 可将这一组文件设为自定义组件):
"component": true
同时,还要在 wxml 文件中编写组件模板,在 wxss 文件中加入组件样式,它们的写法与页面的写法类似。具体细节和注意事项参见 组件模板和样式 。
14、 webview是什么?(必会)
承载网页的容器。会自动铺满整个小程序页面,个人类型的小程序暂不支持使用
文档:https://developers.weixin.qq.com/miniprogram/dev/api/payment/wx.requestPayment.html
API:wx.requestPayment(Object object)
wx.requestPayment({
timeStamp: '',
nonceStr: '',
package: '',
signType: 'MD5',
paySign: '',
success (res) { },
fail (res) { }
})
2、WXSS 是一套样式语言,用于描述 WXML 的组件样式。
3、js 逻辑处理,网络请求
4、json 小程序设置,如页面注册,页面标题及 tabBar
6、app.js 必须要有这个文件,没有也是会报错!但是这个文件创建一下就行 什么都不需要写,以后我们可以在这个文件中监听并处理小程序的生命周期函数、声明全局变量
17、小程序有哪些参数传值的方法?(必会)
1、给 HTML 元素添加 data-*属性来传递我们需要的值,然后通过 e.currentTarget.dataset或 onload 的 param 参数获取。但 data-名称不能有大写字母和不可以存放对象
2、设置 id 的方法标识来传值通过 e.currentTarget.id 获取设置的 id 的值,然后通过设置全局对象的方式来传递数值
3、在 navigator 中添加参数传值
4、 WXSS : WXSS 具有 CSS 的大部分特性,但并不是所有的都支持,而且支持哪些,不支持哪些并没有详细的文档
6、小程序分为两个部分 webview 和 appService 。其中 webview 主要用来展现 UI , appService 有来处理业务逻辑、数据及接口调用。它们在两个进程中运行,通过系统层 JSBridge 实现通信,实现 UI 的渲染、事件的处理
19、小程序的双向绑定和 vue哪里不一样?(必会)
小程序直接 this 、 data 的属性是不可以同步到视图的,必须调用:
小程序:Page({
data: {
items: []
onLoad: function(options) {
this.setData({ items: [1,2,3] } )
})
Vue:
new Vue({
data: {
items: []
mounted () {
this.items = [1, 2, 3]
})
20、小程序的 wxss和 css有哪些不一样的地方?(必会)
1、wxss 的图片引入需使用外链地址
2、没有 Body,样式可直接使用 import 导入
优势: 劣势:第四条便是 应用在生产环境的运行流畅度,长久以来,当 HTML5 应用面对复杂的业务逻辑或者丰富的页面交互时,它的体验总是不尽人意,需要不断的对项目优化来提升用户体验。
23、bindtap和 catchtap的区别是什么?(必会)
相同点:首先他们都是作为点击事件函数,就是点击时触发。在这个作用上他们是一样的,可以不做区分
不同点:他们的不同点主要是 bindtap 是不会阻止冒泡事件的,catchtap 是阻止冒泡的
24、简述下 wx.navigateTo(), wx.redirectTo(), wx.switchTab(),wx.navigateBack(), wx.reLaunch()的区别?(必会)
wx.navigateTo(): 保留当前页面,跳转到应用内的某个页面。但是不能跳到 tabbar 页面 wx.redirectTo(): 关闭当前页面,跳转到应用内的某个页面。但是不允许跳转到 tabbar 页面 wx.switchTab(): 跳转到 abBar 页面,并关闭其他所有非 tabBar 页面 wx.navigateBack(): 关闭当前页面,返回上一页面或多级页面。可通过 getCurrentPages() 获取当前的页面栈,决定需要返回几层 wx.reLaunch(): 关闭所有页面,打开到应用内的某个页面
25、小程序与原生 App哪个好?(必会)
小程序除了拥有公众号的低开发成本、低获客成本低以及无需下载等优势,在服务请求延时与用户使用体验是都得到了较大幅度的提升,使得其能够承载跟复杂的服务功能以及使用户获得更好的用户体验
26、怎么解决小程序的异步请求问题?(必会)
小程序支持大部分 ES6 语法,在返回成功的回调里面处理逻辑或者使用 Promise
27、样式导入(WeUI for)?(必会)
下载 weUI、导入文件夹到 app.js同级目录下、在 app.wxss 里面引入 weui.wxss、在需要引入 weUI 插件样式的页面的 json 文件中引入、 然后就可以在对应页面的 wxml 中直接使用该组件
28、小程序尺寸单位 rpx?(必会)
文档: https://developers.weixin.qq.com/miniprogram/dev/framework/view/wxss.html
WXSS
WXSS (WeiXin Style Sheets)是一套样式语言,用于描述 WXML 的组件样式。
WXSS 用来决定 WXML 的组件应该怎么显示。
与 CSS 相比,WXSS 扩展的特性有: - 尺寸单位 - 样式导入
尺寸单位rpx(responsive pixel): 可以根据屏幕宽度进行自适应。规定屏幕宽为750rpx。 如在 iPhone6 上,屏幕宽度为375px,共有750个物理像素,则750rpx = 375px = 750物理像素,1rpx = 0.5px = 1物理像素。
29、小程序文件的作用域?(必会)
JavaScript 文件中声明的变量和函数只在该文件中有效;
不同的文件中可以声明相同名字的变量和函数,不会互相影响
通过全局函数 getApp 可以获取全局的应用实例,如果需要全局的数据可以在 App() 中设置
30、小程序选择器有哪些?(必会)
选择器 目前支持的选择器有:
选择器 样例 样例描述.class
.intro
选择所有拥有 的组件选择拥有 id="firstname" 的组件
element
view
选择所有 view 组件element, element
view, checkbox
选择所有文档的 view 组件和所有的 checkbox 组件
::after
view::after
在 view 组件后边插入内容
::before
view::before
在 view 组件前边插入内容
全局样式与局部样式 定义在 app.wxss中的样式为全局样式,作用于每一个页面。 在 page 的 wxss 文件中定义的样式为局部样式,只作用在对应的页面,并会覆盖 app.wxss 中相同的选择器。
31、小程序常用组件?(必会)
view、swiper、scroll-view、text、button、input、image 等