微信小程序 常见问题:

一:项目结构
微信小程序项目结构主要有四个文件类型,如下
WXML (WeiXin Markup Language)是框架设计的一套标签语言,结合基础组件、事件系统,可以构建出页面的结构。内部主要是微信自己定义的一套组件。
WXSS (WeiXin Style Sheets)是一套样式语言,用于描述 WXML 的组件样式,
js 逻辑处理,网络请求
json 小程序设置,如页面注册,页面标题及tabBar。
注意:为了方便开发者减少配置项,规定描述页面的这四个文件必须具有相同的路径与文件名。
在根目录下用app来命名的这四中类型的文件,就是程序入口文件。
app.json
必须要有这个文件,如果没有这个文件,项目无法运行,因为微信框架把这个作为配置文件入口,整个小程序的全局配置。包括页面注册,网络设置,以及小程序的window背景色,配置导航条样式,配置默认标题。
app.js
必须要有这个文件,没有也是会报错!但是这个文件创建一下就行 什么都不需要写
以后我们可以在这个文件中监听并处理小程序的生命周期函数、声明全局变量。
app.wxss
全局配置的样式文件,项目非必须。
知道小程序基本文件结构,就可以开始研究官方demo了,研究过程中如果有不明白的地方可以去官方文档寻求答案,如果找不到答案或者有疑问,可再此博客留言,相互交流。下面介绍下出现概率较高的几个问题。
二:常见问题
rpx(responsive pixel)
微信小程序新定义了一个尺寸单位,可以适配不同分辨率的屏幕,它规定屏幕宽为750rpx,如在 iPhone6 上,屏幕宽度为375px,共有750个物理像素,则750rpx = 375px = 750物理像素,1rpx = 0.5px = 1物理像素。
这个项目我用的都是rpx尺寸单位,期间遇到一个很奇葩的问题。在相邻的两条信息直接都会有一个分割线,我将线的高度都设置成1rpx,但是不有个别分割线是不显示的
看到没在第一条和第二条直接并没有现实这条线,但是其他的都展示了,分割线的属性是一样的,而且在不同的手机上(分辨率不同)不显示的分割线也是不同的,有的分辨率好几条分割线都不显示,不知道这是模拟器的bug还是rpx的bug。最后分割线的高度尺寸单位使用了px,解决了这个问题。
40013错误
在微信小程序刚出来的时候如果输入AppID提示这个信息就表示没有破解,但是现在官方软件更新可以选择无AppID开发,如下图,我们之间选择无AppID,即可解决此错误。建议安装官方开发工具。可去此处找下载链接。
4058错误
微信小程序创建项目时选择无AppID,创建项目时会生成app.json,app.josn是程序启动最重要的文件,程序的页面注册,窗口设置,tab设置及网络请求时间设置都是在此文件下的。如果你创建的项目目录下没有app.json文件就会报下面的错误。
我们看到上面的错误信息中有个数字-4058,这应该是初入微信小程序遇到最多的错误了,这种一般都是文件缺失,后面有个path,可以对着该路径看看是否存在这个文件。造成这种错误的原因一般都是创建项目选择的目录不正确,或者在app.json注册了一个不存在的页面。
当然还有一种情况就是在app.json文件的pages注册的页面是没有创建的,或者你删除了某个页面,但是没有取消注册也会是-4058错误。
Page注册错误
这个错误可能很容易理解,页面注册错误。页面是通过Page对象来渲染的,每个页面对应的js文件必须要创建page,最简单的方式就是在js文件下写入Page({}),在page中有管理页面渲染的生命周期,以及数据处理,事件都在这完成。这个错误引起的原因一般都是刚创建页面,js文件还有有处理或者忘了处理。所以要养成创建页面的同时在js文件先创建Page的习惯.
Page route错误
字面意思就是页面路由错误,在微信中有两种路由方式一种是在wxml文件使用
如下代码:
wxml文件:
js文件事件处理函数:
bindtap:function(event){
wx.navigateTo({
url: "search/search"
})
}
如果你这样写的话,恭喜你,你就会看到上面提示的错误,这是因为重复调用路由引起的,处理方法就是删除一个路由,删除
<navigator url="search/search"> <navigator url="search/search"> <view class="serach_view_show" bindtap="bindtap"> 搜索</view> </navigator> </navigator>
这种也是不允许的,也就是说
Do not have * handler in current page.
大概意思就是当前页面没有此处理,让确定是否已经定义,还指出了错误出现的可能位置pages/message/message,其实这种问题出现一般就是我们在wxml定义了一些处理事件,但是在js文件中没有实现这个时事件的处理方法,就会出现这个错误。那么我们按提示在js文件加上事件处理,如下代码,加上后就不会再有此错误提示。
bind:function(event){
wx.navigateTo({
url: "
pages/logs/logs
"
})
},
tabBar设置不显示
对于tabBar不显示,原因有很多,查找这个错误直接去app.json这个文件,最常见的也是刚学习微信小程序最容易犯的错误无外乎下面几种
注册页面即将页面写到app.json的pages字段中,如
"pages":[ "pages/index/index", "pages/logs/logs", "pages/account/account", "pages/more/more" ],
tabBar写法错误导致的不显示,将其中的大写字母B写成小写,导致tabBar不显示。
tabBar的list中没有写pagePath字段,或者pagePath中的页面没有注册
tabBar的list的pagePath指定的页面没有写在注册页面第一个。微信小程序的逻辑是"pages"中的第一个页面是首页,也就是程序启动后第一个显示的页面,如果tabBar的list的pagePath指定的页面都不是pages的第一个,当然也就不会电视tabBar了。
tabBar的数量低于两项或者高于五项,微信官方中明确规定tabBar的至少两项最多五项。超过或者少于都不会显示tabBar。
navigationBarTitle显示问题
通过这个动态图你应该发现问题了,当点击音乐进入音乐界面时,title先显示了WeChatForQQ然后显示的音乐,这个体验肯定是难以接受的,原因是音乐界面的title是在js文件中page的生命周期方法中设置的。
若你不了解生命周期,可以点击查看
Page({
data:{
// text:"这是一个页面"
},
onLoad:function(options){
// 页面初始化 options为页面跳转所带来的参数
},
onReady:function(){
// 页面渲染完成
//NavigationBarTitle如果此处和json文件都设置,最后展示此处的标题栏
wx.setNavigationBarTitle({
title: '账户'
})
},
onShow:function(){
// 页面显示
},
onHide:function(){
// 页面隐藏
},
onUnload:function(){
// 页面关闭
}
})
通过注释你应该明白了,设置标题写在了onReady方法中,也就是页面已经渲染完成了,在onReady之前显示的title就是json文件(覆盖关系,如果在子页面json文件设置title会覆盖app.json全局设置)中的title。可能你会说将wx.setNavigationBarTitle写在onLoad函数中,不过如果这样设置是不对的,因为onLoad执行过后才渲染页面,在渲染页面时title会从json文件中读取,导致onLoad设置的title会只在页面渲染之前展示,之后就显示json文件的tile,所以现在你应该明白ttle设置最优的地方就是给子文件写一个json文件,在文件中写入,如果想改变颜色直接在文件中添加就可以,该文件所写的属性值会覆盖app.json中设置的值。
{
"navigationBarTitleText": "账户"
}
wx.navigateTo无法打开页面
一个应用同时只能打开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 class="item" >
<view class="item-left">
<image src="{{item.url}}" class="image"/>
</view>
<view class="item-middle">
<view>
<text class="title">{{item.title}}</text>
</view>
<view>
<text class="message">{{item.message}}</text>
</view>
</view>
<view class="item_right">
<view><text class="time">{{item.time}}</text></view>
<view class="mark" wx:if="{{item.count>0}}"><text class="text">{{item.count}}</text></view>
</view>
</view>
<view class="line"></view>
</navigator>
而数据接收是在js文件的page里接收的,page生命周期有一个onLoad函数,它就是做一些初始化数据的工作,onLoad函数有一个参数options,我们就可以通过key将数据获取,如下
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(){
// 页面关闭
},
bind:function(event){
wx.navigateTo({
url: "
pages/logs/logs
"
})
},
})
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
# 微信小程序
# 常见问题
# 40013
# 4015问题
# 微信小程序page注册错误问题
# 结构
# 微信小程序点餐系统开发常见问题汇总
# 微信小程序开发常见问题及解决方案
# 微信小程序 HTTPS报错整理常见问题及解决方案
# 微信小程序遇到修改数据后页面不渲染的问题解决
# 微信小程序获取音频时长与实时获取播放进度问题
# 微信小程序搭建及解决登录失败问题
# 微信小程序多音频播放进度条问题
# 微信小程序—setTimeOut定时器的问题及解决
# 微信小程序中遇到的iOS兼容性问题小结
# 微信小程序学习总结(五)常见问题实例小结
# 都是
# 第一个
# 分割线
# 是在
# 你应该
# 跳转
# 写在
# 都不
# 就可以
# 最多
# 有一个
# 要有
# 中有
# 这是一个
# 会报
# 两项
# 五项
# 这是
# 就会
# 如果你
相关文章:
猪八戒网站制作视频,开发一个猪八戒网站,大约需要多少?或者自己请程序员,需要什么程序员,多少程序员能完成?
北京网页设计制作网站有哪些,继续教育自动播放怎么设置?
javascript基本数据类型及类型检测常用方法小结
在线制作视频的网站有哪些,电脑如何制作视频短片?
如何确认建站备案号应放置的具体位置?
Java解压缩zip - 解压缩多个文件或文件夹实例
上海网站制作网页,上海本地的生活网站有哪些?最好包括生活的各个方面的?
建站之星后台密码遗忘?如何快速找回?
清除minerd进程的简单方法
国美网站制作流程,国美电器蒸汽鍋怎么用官方网站?
海南网站制作公司有哪些,海口网是哪家的?
免费制作统计图的网站有哪些,如何看待现如今年轻人买房难的情况?
如何通过WDCP绑定主域名及创建子域名站点?
建站之星展会模板:智能建站与自助搭建高效解决方案
Android滚轮选择时间控件使用详解
常州企业网站制作公司,全国继续教育网怎么登录?
Python如何创建带属性的XML节点
广州建站公司哪家好?十大优质服务商推荐
北京专业网站制作设计师招聘,北京白云观官方网站?
南京做网站制作公司,南京哈发网络有限公司,公司怎么样,做网页美工DIV+CSS待遇怎么样?
如何快速搭建高效服务器建站系统?
购物网站制作费用多少,开办网上购物网站,需要办理哪些手续?
建站之星安装提示数据库无法连接如何解决?
购物网站制作公司有哪些,哪个购物网站比较好?
大学网站设计制作软件有哪些,如何将网站制作成自己app?
在线ppt制作网站有哪些,请推荐几个好的课件下载的网站?
ui设计制作网站有哪些,手机UI设计网址吗?
单页制作网站有哪些,朋友给我发了一个单页网站,我应该怎么修改才能把他变成自己的呢,请求高手指点迷津?
css网站制作参考文献有哪些,易聊怎么注册?
如何用wdcp快速搭建高效网站?
建站之星图片链接生成指南:自助建站与智能设计教程
免费公司网站制作软件,如何申请免费主页空间做自己的网站?
股票网站制作软件,网上股票怎么开户?
如何选择高性价比服务器搭建个人网站?
如何选择域名并搭建高效网站?
如何使用Golang table-driven基准测试_多组数据测量函数效率
想学网站制作怎么学,建立一个网站要花费多少?
企业宣传片制作网站有哪些,传媒公司怎么找企业宣传片项目?
如何用美橙互联一键搭建多站合一网站?
网页设计与网站制作内容,怎样注册网站?
湖南网站制作公司,湖南上善若水科技有限公司做什么的?
C++如何将C风格字符串(char*)转换为std::string?(代码示例)
TestNG的testng.xml配置文件怎么写
高防服务器:AI智能防御DDoS攻击与数据安全保障
如何制作算命网站,怎么注册算命网站?
,怎么在广州志愿者网站注册?
为什么Go需要go mod文件_Go go mod文件作用说明
如何快速启动建站代理加盟业务?
建站之星如何快速更换网站模板?
婚礼视频制作网站,学习*后期制作的网站有哪些?
*请认真填写需求信息,我们会在24小时内与您取得联系。