以前是html标签,比如
那么标签和组件有什么区别,不都是用尖括号包围起来一段英文吗?
其实标签是老的概念,标签属于浏览器内置的东西。但组件,是可以自由扩展的。
类似你可以把一段js封装成函数或模块,你也可以把一个ui控件封装成一个组件。
uni-app参考小程序规范,提供了一批内置组件。
下为html标签和uni-app内置组件的映射表:
-
div 改成 view
-
span、font 改成 text
-
a 改成 navigator
-
img 改成 image
-
input 仅仅是输入框。 原html规范中input不仅是输入框,还有radio、checkbox、时间、日期、文件选择功能。在uni-app和小程序规范中,input仅仅是输入框。其他功能uni-app有单独的组件或API:radio组件、checkbox组件、时间选择、日期选择、图片选择、视频选择、多媒体文件选择(含图片视频)、通用文件选择。
-
form、button、label、textarea、canvas、video 这些还在。
-
select 改成 picker
-
iframe 改成 web-view
-
ul、li没有了,都用view替代。做列表一般使用uList组件
-
audio 不再推荐使用,改成api方式,背景音频api文档
其实老的HTML标签也可以在uni-app里使用,uni-app编译器会在编译时把老标签转为新标签,比如把div编译成view。但不推荐这种用法,调试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是原生组件,层级高于其他组件。如需覆盖原生组件,则需要使用cover-view组件。详见层级介绍
除了内置组件,还有很多开源的扩展组件,把常用操作都进行封装,DCloud建立了插件市场收录这些扩展组件,详见插件市场