微信小程序的面试题以及项目中遇到的坑
2018-11-09 本文已影响0人
郝艳峰Vip
前沿
- 我使用WX原生WXJSsdk开发小程序是在小程序1.0版本的时候,那时候小程序刚刚上线没多久,当时也是踩了很多的坑,不过后来在面试的过程中也遇到好多问题,现在回忆记录下来,方便后续学习。
- 好在现在我使用
uni-app
开发多终端的项目,使用vue写就好了很多。 - 好多面试官都喜欢问小程序跟app,小程序语言跟vue,原生js,有什么区别?下边我就一一作出解释。
在小程序中是通过
-
App()
来注册一个小程序 -
Page()
来注册一个页面
step 一,小程序里边的双向绑定和vue的双向绑定有什么区别?
小程序数据双向绑定::
- 1,首先利用bindinput来触发改变
input
输入框中的值 - 2,使用
data-name
来获取改变的数据的内容 - 3,
bindinput
触发后在方法中通过e.currentTarget.dataset.name
来获取改变后的内容‘ - 4, 通过
this.setData()
来改变data-name
绑定的参数就好了
举个例子一看便知
详情请移步微信小程序input
双向绑定原理详解
step 二, 小程序父子组件之间的传参
详情请移步微信小程序父子组件之间的通信
step 三, 请谈谈小程序的主要目录和文件的作用?
这个问题应该是初学时问到的问题
-
project.config.json
项目配置文件 -
App.js
配置一些全局的基础数据 -
App.json
小程序底部tab栏,标题栏的文字,颜色,大小,路由,等的设置 -
App.wxss
全局的公共样式 -
Pages
配置每个页面 -
index.json
、index.wxml
、index.wxss
、index.js
、
step 四,你是怎么封装微信小程序的数据请求的?
- 1,在根目录下创建
utils
目录以及api.js
和apiConfig.js
文件 - 2, 在
apiConfig.js
文件封装请求的方法,请求头,token等的异常处理 - 3,在
api.js
中引入apiConfig.js
的方法,设置页面中需要的接口地址,就可以了,
这里大概跟vue的有相类似之处
step 五,微信小程序的生命周期
这个问题vue也会经常问到的对吧
全局文件app.js
中定义了一些声明周期的方法
- onLaunch() 监听小程序初始化 当小程序初始化完成时,会触发 onLaunch(全局只触发一次)
- onShow() 监听小程序显示 当小程序启动,或从后台进入前台显示,会触发 onShow
- onHide() 监听小程序隐藏 当小程序从前台进入后台,会触发 onHide
- onError() 错误监听函数 当小程序发生脚本错误,或者 api 调用失败时,会触发 onError 并带上错误信息
这是每个page页面的周期函数
- onLoad() 页面加载时触发,全局只会调用一次,在该周期内可获取当前页面路径的参数
- onShow() 页面显示时触发或者切入前台时触发,也就是在该周期内可以获取请求数据
- onReady() 页面初次渲染完成时触发,只会调用一次,代表页面已经可以和视图层进行交互
- onHide() 页面隐藏或者切入后台时触发,如底部tab切换到其他页面或小程序切入后台时触发。
- onUnload() 页面卸载时触发
六,小程序页面之间传递参数的方法有哪些?
- 1,使用全局变量
- 2,页面跳转或者重定向使用
url
传参数 - 3,使用小程序自带的存储传参数
详情请移步微信小程序页面之间传递参数方法小结
七 ,小程序template
的使用
结束语
还有好多没有总结到的知识点,慢慢来。