2--开始第一个小程序之旅
新建页面的步骤
1.右键新建page生成页面的框架
微信小程序快速创建页面自动生成文件,方法:
在左侧目录处右键-新建目录-(在新建成功的文件夹中)右键-新建page 就ok!!
(1)右键--新建目录
(2)在新建成功的文件夹中,右键--新建page
会自动,生成4个文件,如下所示:
2.在app.json中的pages添加我们新建页面的路径(下图的路径,是创建生成微信小程序页面4个文件的同时,在app.json文件中自动生成的页面路径)
如果手动,将某个页面删除掉,在app.json中,我们需要把对应的路径给删除掉。这里不会 因为你手动删除,而自动删除这里的路径。(一定要到这里手动去删除路径!!!)
-----------------------
小程序生命周期和页面声明周期
小程序的生命周期函数:
小程序的生命周期函数是在app.js里面调用的,App(Object)函数用来注册一个小程序。
接受一个 Object 参数,指定其小程序的生命周期回调
一般有onLaunch监听小程序初始化、onShow监听小程序显示、onHide监听小程序隐藏等生命周期回调函数。
小程序的生命周期函数的调用顺序为:onLaunch>onShow>onHide
页面生命周期函数:
页面生命周期函数就是当你每进入/切换到一个新的页面的时候,就会调用的生命周期函数。
Page(Object) 函数用来注册一个页面。接受一个Object类型参数,其指定页面的初始数据、生命周期回调、事件处理函数等。
熟悉掌握--小程序生命周期运行顺序
小程序启动时先执行onlauch>onshow>onHide,
然后再执行页面onload>onshow>onready>onhide>onunload
小程序生命周期
onlauch
onshow
onhide
每个小程序都需要在 app.js 中调用 App 方法注册小程序实例,绑定生命周期回调函数、错误监听和页面不存在监听函数等。
App({ onLaunch(){ console.log('onLaounch监听小程序初始化') }, onShow(){ console.log('onShow监听先程序显示') }, onHide(){ console.log('onHide监听小程序隐藏') }, onError(msg){ console.log(msg) }, globaData:'我是全局数据' })
从上演示,我们可以知道小程序的生命周期函数的调用顺序为:onLaunch>onShow>onHide
小程序页面生命周期
onload
onshow
onready
onhide
onunload
在pages中的index页面中设置生命周期函数
Page({ /** * 页面的初始数据 */ data: { }, /** * 生命周期函数--监听页面加载 */ onLoad: function (options) { console.log('onLoad监听页面加载') }, /** * 生命周期函数--监听页面初次渲染完成 */ onReady: function () { console.log('onReady监听页面初次渲染完成') }, /** * 生命周期函数--监听页面显示 */ onShow: function () { console.log('onShow监听页面显示') }, /** * 生命周期函数--监听页面隐藏 */ onHide: function () { console.log('onHide监听页面隐藏') },
点击,调试器或者 可视化,然后页面初次加载渲染
显示生命周期函数执行顺序如下所示:
总结:
小程序程序生命周期函数和页面生命周期函数的调用顺序,
这两者之间的事件顺序一般如上图所示小程序周期函数在前,页面周期函数触发在后。
但是这并不是绝对的,
比如,有时候就会存在页面onLoad函数比小程序app的onLaunch生命周期函数先调用的情况,那么这时候就可以用回调的方式的来处理。
-----------------------
小程序的自适应尺寸单位rpx
rpx单位:是可以根据屏幕宽度进行自适应
尺寸单位
rpx(responsive pixel):可以根据屏幕宽度进行自适应。规定屏幕宽度为750rpx。如在iphone6上,屏幕宽度为375px,共有750个物理像素,则750rpx=375px=750物理像素,1rpx=0.5px=1物理像素。
-----------------------
小程序的app.json和子页面头部配置信息
微信小程序单个页面的json文件的配置信息 覆盖 app.json的配置信息
因为
子页面中的xx.json 的优先级 高于 根目录的app.json
例如:
在“我的”页面中的my.json文件中配置:
{ "navigationBarTitleText": "我的" }
在“预约”页面中的yuyue.json文件中配置:
{ "navigationBarTitleText": "预约" }
显示效果如下所示:
如果出现“微信小程序单个页面的json文件无法覆盖app.json的问题”?
解决方法:
用的版本是默认的2.0.4版本,换成2.4.3版本,即可解决!!
操作如下所示:
-----------------------
微信小程序---去掉顶部导航栏
在app.json中的"window": {}添加
"navigationStyle": "custom"
"window": { "backgroundColor": "#F6F6F6", "backgroundTextStyle": "light", "navigationBarBackgroundColor": "#FEDA22", "navigationBarTitleText": "学车教练预约", "navigationBarTextStyle": "white", "navigationStyle": "custom" },
显示效果如下所示:
-----------------------
小程序的使用flex弹性布局
在父容器上加display:flex,
.sort_box{
flex-direction:row;
margin:0 30rpx;
justify-content:space-aound;
}
wxml:
<view class="flex-wrp" style="flex-direction: row;"> <view class="flex-item demo-text-1">1</view> <view class="flex-item demo-text-2">2</view> <view class="flex-item demo-text-3">3</view> </view> <view class="flex-wrp" style="flex-direction: row;"> <text class="flex-item demo-text-1"> 内容一 </text> <text class="flex-item demo-text-2"> 内容二 </text> <text class="flex-item demo-text-3"> 内容三 </text> </view> <view class="flex-wrp" style="flex-direction: row;"> <image class="flex-item" src="../../images/w/w1.jpg"></image> <image class="flex-item" src="../../images/w/w2.jpg"></image> <image class="flex-item" src="../../images/w/w3.jpg"></image> </view> <view class="flex-wrp" style="flex-direction: column;"> <view class="flex-item demo-text-1">1</view> <view class="flex-item demo-text-2">2</view> <view class="flex-item demo-text-3">3</view> </view>
wxss:
.flex-wrp{ margin-top: 60rpx; height: 300rpx; border: 1px solid red; display: flex; align-items: center; justify-content: center; } .flex-item{ width: 200rpx; height: 200rpx; display: flex; align-items: center; justify-content: center; } .demo-text-1{ color: #fff; font-size: 36rpx; background-color: #1AAD19; } .demo-text-2{ color: #fff; font-size: 36rpx; background-color: #2782D7; } .demo-text-3{ color: #fff; font-size: 36rpx; background-color: #ccc; }
预览效果如下所示:
其中,父元素设置
项目位于容器的中心
justify-content: center;
父元素设置
项目位于各行之间留有空白的容器内
justify-content: space-between;
预览效果如下所示:
父元素设置
项目位于各行之前、之间、之后都留有空白的容器内
justify-content: space-around;
预览效果,如下所示:
父元素设置
移动端界面布局中使用flex,使用justify-content: space-evenly;样式,在部分机型中无效,真机调试样式出不来
浏览器内核的问题,兼容性问题 不用这个属性!!
justify-content: space-evenly;
预览效果,如下所示:
父元素设置
默认值。项目位于容器的开头
justify-content: flex-start;
预览效果,如下所示:
父元素设置
项目位于容器的结尾
justify-content: flex-end;
预览效果,如下所示:
还没有留言,还不快点抢沙发?