1、小程序的相关文件类型
目录文件如下图:
2、简述微信小程序原理
微信小程序采用JavaScript、wxml、wxss三种技术进行开发,本质就是一个单页面项目,所有的页面渲染和事件处理,都在一个页面内进行,但又可以通过微信客户端调用原生的各种接口。
微信的架构,是数据驱动的架构样式,它的ui和数据是分离的,所有的页面更新,都需要通过对数据的更改来实现。
小程序分为两个部分:webview和appServer。其中webview主要用来展现ui,appServer用来处理业务逻辑、数据及接口调用。它们在两个进程中执行,通过系统层JSBridge实现通信,实现ui的渲染、事件的处理。
3、小程序的双向绑定和vue哪里不一样
小程序直接使用this.data的属性是不能同步到视图的,必须调用:
data:{
value:'hello'
}
this.setData({
value:'hello'
}, () => { //第二个参数
console.log("在页面渲染完value后再执行");
})
//错误写法:this.data.value:''
//注意key的名称一定是data中的名称
})
4、小程序的wxss和css哪里不一样
wxss和css类似,不过在css的基础上做了一些补充和修改
尺寸单位:rpx
rpx是响应式像素,可以根据屏幕宽度进行自适应。规定屏幕宽为750rpx。如在iPhone6上,屏幕宽度为375px,共有750个物理像素,则750rpx=375px=750物理像素。
使用@import标志符来导入外联样式,@import后跟需要导入的外联样式表的相对路径,用;表示语句结束。
/** index.wxss **/
@import './base.wxss';
.container{
color: red;
}
5、小程序有哪些传递数据的方法
①使用全局变量实现数据传递
在app.js中定义全局变量globalData,将需要存储的信息放在里面
//app.js App({ globalData:{ userName:"刘某" } })
使用时,直接使用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相关
6、小程序的生命周期函数
onLoad 页面加载时触发。一个页面只会调用一次,可以在onLoad的参数中获取打开当前页面路径中的参数
onShow 页面显示/切入前台时触发
onReady 页面初次渲染完成时触发。一个页面只会调用一次,代表页面已经准备妥当,可以和视图层进行交互
onHide 页面隐藏/切入后台时触发。如navigateTo或底部tab切换到其他页面,小程序切入后台等
onUnload 页面卸载时触发,如redirectTo或navigateBack到其他页面时