通过这个动态图你应该发现问题了,当点击音乐进入音乐界面时,title先显示了WeChatForQQ然后显示的音乐,这个体验肯定是难以接受的,原因是音乐界面的title是在js文件中page的生命周期方法中设置的。
若你不了解生命周期,可以点击查看
Page({
data:{
// text:"这是一个页面"
},
onLoad:function(options){
// 页面初始化 options为页面跳转所带来的参数
通过注释你应该明白了,设置标题写在了onReady方法中,也就是页面已经渲染完成了,在onReady之前显示的title就是json文件(覆盖关系,如果在子页面json文件设置title会覆盖app.json全局设置)中的title。可能你会说将wx.setNavigationBarTitle写在onLoad函数中,不过如果这样设置是不对的,因为onLoad执行过后才渲染页面,在渲染页面时title会从json文件中读取,导致onLoad设置的title会只在页面渲染之前展示,之后就显示json文件的tile,所以现在你应该明白ttle设置最优的地方就是给子文件写一个json文件,在文件中写入,如果想改变颜色直接在文件中添加就可以,该文件所写的属性值会覆盖app.json中设置的值。
{
"navigationBarTitleText": "音乐"
}
一个应用同时只能打开5个页面,当已经打开了5个页面之后,wx.navigateTo不能正常打开新页面。请避免多层级的交互方式,或者使用wx.redirectTo
本地资源无法通过 css 获取
background-image:可以使用网络图片,或者 base64,或者使用
标签 页面间数据传递微信小程序路由(页面跳转)是通过API wx.navigateTo或者wxml中
<navigator url="/pages/dynamic/dynamic?title={{item.title}}&message={{item.message}}"> <view > <view> <image src="{{item.url}}"/> </view> <view> <view> <text>{{item.title}}</text> </view> <view> <text>{{item.message}}</text> </view> </view> <view> <view><text>{{item.time}}</text></view> <view wx:if="{{item.count>0}}"><text>{{item.count}}</text></view> </view> </view> <view></view> </navigator>而数据接收是在js文件的page里接收的,page生命周期有一个onLoad函数,它就是做一些初始化数据的工作,onLoad函数有一个参数options,我们就可以通过key将数据获取,如下
/** 作者:dushao * 新浪微博: * 博客 : * */ * Page({ data:{ // text:"这是一个页面" isHiddenToast:true } onLoad:function(options){ // 页面初始化 options为页面跳转所带来的参数 console.log(options.title) console.log(options.message) }, onReady:function(){ // 页面渲染完成 }, onShow:function(){ // 页面显示 }, onHide:function(){ // 页面隐藏 }, onUnload:function(){ // 页面关闭 }, bindtap:function(event){ wx.navigateTo({ url: "/pages/message/search/search" }) }, })这样就实现了页面间数据传递功能。
好了,今天就写到这了后期若遇到微信小程序其它一些问题,我会追加到此文,若你在开发过程中遇到比较坑的问题已经解决方案,可在我的微博或者邮箱留言。谢谢支持。
posted @