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中使用了,其他地方便不可用了,会失效。

posted @ 2020-04-09 13:44  huihuihero  阅读(789)  评论(0编辑  收藏  举报