uni-app开发注意事项
-
小程序不支持在css中使用本地文件,包括本地的背景图和字体文件。需以base64方式方可使用。App端在v3模式以前,也有相同限制。v3编译模式起支持直接使用本地背景图和字体。
-
微信小程序只支持网络路径和base64的图片。不支持相对路径引入的图片图片(真机不支持,开发工具支持),如有需要,大图片可以使用网上链接,小图片可以转码后使用(百度搜索“图片base64转码”)
-
static 目录下的 js 文件不会被编译,如果里面有 es6 的代码,不经过转换直接运行,在手机设备上会报错。
-
使用@import引入css文件等需在尾部 添加分号; 以表示语句结束。不添加则引入不生效
-
微信小程序不支持相对路径(真机不支持,开发工具支持),所以若开发的项目包含微信小程序端,则建议使用绝对路径引入文件
/* 绝对路径 */
@import url('/common/uni.css');
@import url('@/common/uni.css');
/* 相对路径 */
@import url('../../common/uni.css');
@import '../../common/uni.css';
-
使用rpx或者px,像宽度这种需要动态改变的建议使用 rpx。像字体,高度这种若不需要动态改变,则可以使用 px
-
请尽量避免将静态的样式写进 style 中,以免影响渲染速度。静态的样式可以统一写到 class 中。style中可以写入动态样式,会自动解析,如:
<view :style="{ height: iStatusBarHeight + 'px'}"></view>
export default {
data() {
return {
iStatusBarHeight:0
}
},
onLoad() {
this.iStatusBarHeight = uni.getSystemInfoSync().statusBarHeight
}
}
-
为支持跨平台,框架建议使用Flex布局 参考 http://www.ruanyifeng.com/blog/2015/07/flex-grammar.html
-
小程序不支持在css中使用本地文件,包括本地的背景图和字体文件。需以base64方式方可使用。
-
uniapp全局变量的几种实现方式 https://ask.dcloud.net.cn/article/35021
-
以:style=""这样的方式设置px像素值,其值为实际像素,不会被编译器转换。
-
非H5端不支持 Vue官方文档:Class 与 Style 绑定 中的 classObject 和 styleObject 语法 ,详见:https://cn.vuejs.org/v2/guide/class-and-style.html
-
非H5端暂不支持在自定义组件上使用 Class 与 Style 绑定
-
为兼容各端,事件需使用 v-on 或 @ 的方式绑定,请勿使用小程序端的bind 和 catch 进行事件绑定。
-
若需要禁止蒙版下的页面滚动,可使用 @touchmove.stop.prevent="moveHandle",moveHandle 可以用来处理 touchmove 的事件,也可以是一个空函数。
-
App端(vue页面V3编译模式)和H5端支持v-html,其他端不支持v-html。跨端的富文本处理方案详见:https://ask.dcloud.net.cn/article/35772
-
app-nvue只能使用rich-text
-
若开发项目包含小程序和app,建议使用uParse(uparse详见: https://ext.dcloud.net.cn/search?q=uparse )。在使用nvue的页面里再使用rich-text
-
nvue页面暂不支持全局组件
-
Vue.component 的第一个参数必须是静态的字符串。如 Vue.component('page-head',pageHead)
-
在创建新页面后,安卓端要关闭再重新运行,新页面才可以通过路由跳转过去。热更新不管用,要重新启动。
-
uni.navigateTo中路由路径要加 / 才能成功跳转
pages.json
{
"path" : "pages/user/register/register", //这里pages前没有/
"style" : {
"navigationBarTitleText": "用户注册"
}
},
login.vue
register(){
uni.navigateTo({
url:"/pages/user/register/register" //这里比pages.json中的路由配置pages前多了/
})
},
- app中文和英文的行高不一致,在文字如标题,简介等,需统一设置高度和行高
font-size: 12px;
color:#FFFFFF;
height: 40rpx; //设置行高和高度
line-height: 40rpx;
-
uniapp中集成的微信分享api不能显示超过32k的图片,所以分享图片要设为小于32k的图片(iOS上有此限制,Android上没有)
-
在tabBar(及app的底部导航)中使用的路由具有唯一性。tabBar中使用了,其他地方便不可用了,会失效。