uni-app前端框架坑点集合,打包图片加载不到问题

news/2024/11/8 12:18:12/

uni-app中v-for ref 运行到微信小程序/字节小程序差异

vue2

<h1 ref="sign1"></h1>
// 结果1<h1 v-for="index in 5" :ref="'sign' + index"></h1>
// 结果2
this.refs['sign1']结果1结果2
vue2对象一维对象数组
uniapp => 微信小程序一维对象数组一维对象数组
uniapp => 字节小程序对象一维对象数组

 

 

HbuildX-uniapp 代码块注释怎么写

/**
* @param {string} url 请求地址
* @param {object} reqPackage 请求包
*/
func1() {}

代码注释须以/**开始 */结束,中间的每一行都要用“* @param {类型} 字段 备注”这种格式

技巧:可以先写函数,然后在函数的上面一行输入/**并回车,Hbuildx会自动根据入参生成注释模板

微信小程序中,NodeRef 去select一个组件slot里的某个view的高度咋整?

可以用深度选择器 >>>

HBuildX版本2.8.11 uni.getSystemInfoSync().windowHeight写在export default外是原始高度,写在export default里才是去头去底不包含NavigationBar和TabBar的高度

微信小程序里你可以写this.onShow()再调一次微信的onShow()生命周期,但是再uni里头是不行的

H5和App中用到的组件不必import,但是在小程序中必须引入

数组flat()函数在chrome可以正常执行,但在app上运行有兼容性问题

HbuildX2.7.5--前端注释不要用冷门的特殊符号,可能会导致运行到手机失败且无明显报错

新版的HbuildX2.6.16已经可以不用手动在main.js里注册组件了(已在H5和app验证),在相关的pages用可以直接使用组件标签。

因SDK和android壳的打包arr版本不符导致的apk打开告警问题,可以在uniapp工程的manifest.json文件app-plus层级下配

"compatible" : {"ignoreVersion" : true //true表示忽略版本检查提示框,HBuilderX1.9.0及以上版本支持  
}

HBuildX2.6.5版本下,input组件的v-model属性在android的双向绑定有问题,输入过快会出现数字死循环抖动现象,需要用@input里settimeout异步再赋值

HBuildX2.6.5版本下,button组件如果要自定义不可点击时的背景色,就不要再用disabled这个属性了,因为在andorid环境下disabled会覆盖你自定义的颜色

比如以下写法不可取

 <button class="submit" :class="{'btn-disabled': account == 0}" @tap="submit" :disabled="account == 0">确认充值</button>

微信支付:

报“签名不对,请检查签名是否与开放平台上填写的一致”?

检查微信开放平台的签名方式和统一下单的签名方式是否一致,需要都用MD5

如果微信支付首次能支付成功,之后死活不进支付的回调,需要重新安装微信

那就是开放平台的签名不对,应该是数字和小写字母的组合而不是冒号隔开的大写字母和数字

取消微信支付不会走微信的回调fail和complete函数,所以在这两个生命周期去修改防抖的参数是不可行的

软键盘顶起底部元素怎么解决?

写死当前页面高度并用flex布局以及justify-content的space-between属性

如何建一个不可控制map组件,只要在map组件嵌套一个同等大小的cover-view

打包App使用了沉浸式开发由于状态栏的颜色太浅导致手机的状态栏时间、wifi、电量等难以辨识时可以用

plus.navigator.setStatusBarStyle('dark'); // dark/light

进行灵活修改,需要注意的是这个函数在HbuildX2.6.5里

可以要放在onShow生命周期,并放在setTimeout里延时设置,且该方法开发模式运行到手机无效,必须云打包或者离线打包才能看到效果

v-text指令在text标签使用在H5中没问题,但是在app中会存在无法及时更新的问题,所以不推荐使用该指令

uni打包到App,新增一个组件继承一个已有组件时不要使用任何相同的属性,你永远不知道不同平台的兼容性如何。

js问题,Date.parse()函数识别"2020-03-20 15:00"以及"2020/03/20 15:00"在H5和android上是不一样的。

for循环下子元素每个都要绑定事件的情况,可以在父节点绑定事件,子解点使用data-x的形式冒泡事件到父节点统一处理

data 必须声明为返回一个初始数据对象的函数;否则页面关闭时,数据不会自动销毁,再次打开该页面时,会显示上次数据。

h5的websocket使用uni.closeSocket的code不能随便传,仔细看文档。

父传子组件的props如果有函数,h5可以实现,但是小程序会丢失this,所以还是中规中矩用事件传递吧

自定义vue组件打包到app上时,资源文件不要放在组件目录而是放在static目录

canvas画图保存到本地才发现的当绘制网络资源图片时保存为空白图片。对于CanvasContext.drawImage这个canvas的画图函数中imageResource并未标明对图片资源的要求,就早些版本是可以加载网络图片的,但是2019.12.12日对照微信小程序文档发现对于网络资源必须downloadFile存为缓存图片。此处uni文档并未标明。

HbuilderX 2.2.2 20190816还不支持通过使用动画的top和left等元素使元素产生移动,可使用translateX等代替,且translate移动和rotate旋转执行顺序不同会影响transformOrigin的表现。HBuilderX 2.2.3.20190822-alpha 已修复此问题

dev模式process.env.NODE_ENV 的值为 development,build 模式 process.env.NODE_ENV 的值为 production。

uni的onSocketMessage流程需要跟在connectSocket流程后面,这个与微信是不一样的,微信的onSocketMessage即使写在connectSocket之前也是可行的。

聊天室类型的scroll-view没有好用的函数可以实时自动置底,可以绑定变量到scroll-top然后根据聊天室的消息类型对距离顶部的距离进行修改但是一定要包在this.$nextTick()里。

有弹出层后黑色透明幕布防滑动@touchmove.stop.prevent="",如果弹出框需要滑动则滑动父节点添加@touchmove.stop=""

uni的底部菜单栏自带了对iphoneX这类机型的适配,给菜单栏高度增加了横条菜单栏的高度,此时如果想在菜单栏上面再fxied一个底部栏也需要加上横条高度

bottom: calc(50px + env(safe-area-inset-bottom))

在没有uni菜单栏的页面也只需要配置以下即可

position: fixed;

bottom: 0;

padding-bottom: env(safe-area-inset-bottom); // 以白色填充iphonex的空白底

left: 0;

width: 100%;

background-color: white;

标签rich-text和属性v-html有区别,rich-text无法加载富文本视频video标签,uParse第三方组件可以兼容适配图片和视频的长宽

关于富文本编辑器内的样式问题,可以尝试使用深度选择器 /deep/

公众号里打开微信浏览器并 做过微信认证后导向的网页如果经过switchTab则pages.json的第一个配置页无法跳转页面,报页面找不到,getCurrentPages()长度为0

async await可以阻塞等待网络请求,但是canvas的绘制不会被阻塞

刷新页面做返回操作 onReady会走,但是onShow不会走

uni.showToast方法会导致页面无法点击和左右滑动

img标签不太适用,尤其是src为一个非static目录下资源则无法显示,可以用view标签代替,样式写在css里,image标签一般用来加载网络图片资源。此外img标签加载网络图片地址不能带左括号或者右括号或者同时都有,这会导致图片在H5不可见但是浏览器f12是可以看到图片样子,此情况在微信小程序无影响。

showModal接口content和title是必选字段,如果没有title影响不大,但是如果没有content,或者content字段为空,则在h5和微信端没问题,但是在android端则啥都不显示

css样式需规范,多用类选择器,少用标签选择器,因为编译打包后的标签各平台存在差异

H5的子组件onLoad和onReady生命周期都不会走,但是父组件会走

获取当前页的路由信息getCurrentPages()[index].route

父元素的透明度如何不影响子元素,不要用opacity,用rgba()

不支持在标签中使用全局js变量,必须放到data中转一下

uni提供上传视频和图片的接口,那么音频怎么办,这个还没找到解决办法。

v-for循环的时候,H5的遍历是从1开始,微信是从0开始,例如v-for="i of 5"

css里的样式如果是background加载图片,路劲开发阶段写/static开头是没问题的,但是发布会加载不到,须写成../../static这种相对路劲,这个和vue有所区别,需注意。


http://www.ppmy.cn/news/665123.html

相关文章

软件测试面试题大全

软件测试面试题 这是一份超详细的软件测试面试题分享文章&#xff0c;文章中将软件测试分为面试基础题、测试实战面试题、基础知识点、智力题四个模块由浅入深的总结。 温馨提示&#xff1a;文章篇幅比较长&#xff0c;建议看官收藏&#xff01;&#xff01;&#xff01; 一…

分享使用iphone4的60条技巧

1&#xff0c;iPhone 4下面数据线口两边的两个洞&#xff0c;一个是喇叭&#xff0c;一个是麦克风&#xff0c;觉得一边喇叭不响的人可以放心了&#xff0c;我之前就认为一边喇叭坏了&#xff0c;见笑了。 2&#xff0c;同步进去的照片是不能在手机上删除的&#xff0c;只能取消…

iPhone屏幕尺寸和分辨率方面的一些小姿势

iPhone设备现在有多种分辨率&#xff0c;如下表所列&#xff0c; 设备屏幕尺寸分辨率&#xff08;pt&#xff09;Reader分辨率&#xff08;px&#xff09;渲染后PPI&#xff08;DPI&#xff09;iPhone 3GS3.5寸320 x 4801x320 x 480空163iPhone 4/4S3.5寸320 x 4802x640 x 960…

iphone6/6+ 适配心得

1. 文档综述 自iphone6/6发布&#xff0c;ios屏幕分辨率的种类一下从2种变成了四种。对于以前很多手写UI&#xff0c;并且使用绝对坐标的UI&#xff0c;可能会发生异变&#xff0c;本文主要介绍在纯手写UI条件下&#xff0c;ios应用界面适配的一些经验了。 2. iphone分…

vue-H5 移动端适配方案 rem

vue-H5 移动端适配方案 rem 在这里插入代码片(function (doc, win) { var docEl doc.documentElement, resizeEvt “onorientationchange” in window ? “onorientationchange” : “resize”, recalc function () { var clientWidth docEl.clientWidth; if (!clientWid…

HTML5移动端手机网站开发流程

最近一直在研究移动手机网站的开发&#xff0c;发现做手机网站没有想象中的那么难。为什么会这么说呢&#xff1f;我们试想下:我们连传统的PC网站都会做&#xff0c;难道连一个小小的手机网站难道都搞不定吗&#xff1f;其实手机网站就是一个微缩版的PC网站罢了&#xff01;至于…

H5性能优化方案

H5性能优化意义 对于一个H5的产品&#xff0c;功能无疑很重要&#xff0c;但是性能同样是用户体验中不可或缺的一环。原本H5的渲染性能就不及native的app&#xff0c;如果不把性能优化做起来&#xff0c;将极大地影响用户使用产品的积极性。 用户感受 当用户能够在1-2秒内打…

HTML5学习

文章目录 autofocus自动聚焦语义化标签DOCTYPE声明metameta http-equivmeta charset的指定viewport移动端视口 不允许写结束标记的元素可以省略结束标记的标签属性值的简写废弃标签contenteditable规定元素内容是否可编辑hidden属性data-* 属性draggable拖拽属性dataTranfer数据…