以下为《uniapp使用总结》的无排版文字预览,完整内容请下载
uniapp与常规前端编码的异同
div 改成 view
span、font 改成 text
a 改成 navigator
img 改成 image
input 还在,但type属性改成了confirmtype
form、button、checkbox、radio、label、textarea、canvas、video 这些还在。
select 改成 picker
iframe 改成 web-view
ul、li没有了,都用view替代
audio 不再推荐使用,改成api方式,背景音频api文档其实老的HTML标签也可以在uni-app里使用,uni-app编译器会在编译时把老标签转为新标签。但不推荐这种用法,调试H5端时容易混乱,基于元素的选择器也会出问题。
除了改动外,新增了一批手机端常用的新组件
scroll-view 可区域滚动视图容器
swiper 可滑动区域视图容器
icon 图标
rich-text 富文本(不可执行js,但可渲染各种文字格式和图片)
progress 进度条
slider 滑块指示器
switch 开关选择器
camera 相机
live-player 直播
map 地图
cover-view 可覆盖原生组件的视图容器
cover-view需要多强调几句,uni-app的非h5端的video、map、canvas、textarea是原生组件,层级高于其他组件。如需覆盖原生组件,比如在map上加个遮罩,则需要使用cover-view组件
js的变化
运行环境从浏览器变成v8引擎
标准js语法和api都支持,比如if、for、settimeout、indexOf等。
但浏览器专用的window、document、navigator、location对象,只有在浏览器中才有,app和小程序都不支持。
可能有些人以为js等于浏览器里的js。其实js是ECMAScript组织管理的,浏览器中的js是w3c组织基于js规范补充了window、document、navigator、location等专用对象。
在uni-app的各个端中,除了h5端,其他端的js都运行在一个独立的v8引擎下,不是在浏览器中,所以浏览器的对象无法使用。如果你做过小程序开发,对此应当很了解。
这意味着依赖document的很多HTML的库,比如jqurey无法使用。
当然app和小程序支持web-view组件,里面可以加载标准HTML,这种页面仍然支持浏览器专用对象window、document、navigator、location。
css的变化
标准的css基本都是支持的。
选择器有2个变化:*选择器不支持;元素选择器里没有body,改为了page。微信小程序即是如此。
单位方面,px无法动态适应不同宽度的屏幕,rem只能用于h5、rpx只能用于微信小程序。为此uni-app新增了 upx ,通吃所有端、所有屏幕宽度的动态单位 upx文档
uni-app推荐使用flex布局,并默认就是flex布局。这是通吃所有端的新一代布局方案,相关教程可自行百度。
注意背景图和字体文件尽量不要大于40k。会影响性能。如果非要大于40k,需放到服务器侧远程引用或base64后引入,不能放到本地作为独立文件引用。在小程序里,其实小于40k的文件在css里也无法引用,uni-app编译器在编译时自动做了处理,把小于40k的文件编译为base64方式。
工程结构和页面管理
每个可显示的页面,都必须在 pages.json 中注册。如果你开发过小程序,那么pages 内容过长,仅展示头部和尾部部分文字预览,全文请查看图片预览。 书。但建议使用普遍受信的证书而不是忽略证书校验.
Uniapp无法通过this.$parent.fn调用父组件的方法接收返回值; 暂时找到的方法是this.$emit("Echange", e.target.value, val => {console.log(val),父组件运行形参函数;
在微信小程序中,不能用id做css选择器,建议用class;
加载less和sass预编译,用cnpm安装环境无效,需要用Hbuilder的插件安装;
在小程序上线审核过程中,微信首先需要检查登录效果是否符合微信小程序标准,支付宝主要检查功能是否合规,每个平台对政务类程序上线管控比较严格;
/
[文章尾部最后300字内容到此结束,中间部分内容请查看底下的图片预览]
以上为《uniapp使用总结》的无排版文字预览,完整内容请下载
uniapp使用总结由用户“kivianqmn”分享发布,转载请注明出处