
1基础组件:
什么是组件:
<ul>
<li>组件是视图层的基本组成单元。</li>
<li>组件自带一些功能与微信风格的样式。</li>
<li>一个组件通常包括开始标签
和结束标签
,属性
用来修饰这个组件,内容
在两个标签之内。</li>
</ul>
2属性类型
<ul>
<li>Boolean 布尔值 组件写上该属性,不管该属性等于什么,其值都为true
,只有组件上没有写该属性时,属性值才为false
。如果属性值为变量,变量的值会被转换为Boolean类型</li>
<li>Number 数字 1
, 25</li>
<li>String 字符串 "string"</li>
<li>Array 数组 [ 1, "string" ] </li>
<li>Object 对象 { key: value } </li>
<li>EventHandler 事件处理函数名 "handlerName"
是 Page中定义的事件处理函数名</li>
<li>Any 任意属性 </li>
</ul>
3共同属性类型
id , class , style , hidden , data- , bind / catch
4特殊属性
几乎所有组件都有各自定义的属性,可以对该组件的功能或样式进行修饰
5组件列表
基础组件分为以下八大类:
视图容器(View Container):
view 视图容器 , scroll-view 可滚动视图容器, swiper 滑块视图容器
基础内容(Basic Content):
icon 图标, text 文字, progress 进度条
表单(Form):
button 按钮, form 表单, input 输入框, checkbox 多想选择器, radio 单选器, picker 列表选择器, slider 滚动选择器, switch 开关选择器, label 标签
*** 作反馈(Interaction)
action-sheet 上拉菜单
modal 模态d窗
toast 消息提示框
loading 加载提示符
导航Navigation
navigator 应用链接
多媒体(Media)
audio 音频, image , video 视频
地图
map 地图
画布Canvas
canvas 画布
flex: vt折曲,使收缩; vi玩去,收缩
小程序的设计并没有完全遵循 Web 规范,导致小程序生态和传统 Web 开发生态之间的割裂,海量优秀的 Web 物料并不能直接用于小程序开发。因而 Taro 在相当一段时间内生态都相对薄弱,UI 框架选择不多的问题更是深深困扰着开发者。
另一方面,业界有着存量的 H5 应用,中短期内 H5 应用适配到小程序端的需要还会存在。我们希望能减少 H5 应用迁移到小程序端的成本,甚至能够直接运行在小程序端。
Taro 团队一直在思考如何最大限度地在小程序环境中复用 Web 生态,直到 Taro 30 诞生后,这种想法有了落地的可能。下文将介绍基于 Taro 30 实现 H5 同构的思路与问题,以及我们尝试适配了三大移动端 UI 框架 WEUI 、 Ant Design Mobile 、 VantUI 的实验结果。
Taro 30 是一款重运行时的跨端框架,它通过模拟实现浏览器的 BOM 和 DOM API 实现了对 React、Vue 等 Web 开发框架的兼容。
既然已经有了浏览器环境的 BOM 和 DOM API,Taro 应用和 Web 应用之间的鸿沟在于小程序组件和 HTML 标签之间的差异。
Taro3 的渲染数据流如下:
前端框架 -> Taro DOM -> 小程序 data
HTML 标签和小程序组件的标签名、属性、事件是有差异的,而前端框架无需感知这些差异。
因此前端框架适配层、Taro DOM 层不需要改动,只要在 Taro DOM 序列化为小程序 data 这一步作映射即可。
HTML 标签相对小程序组件封装程度更低、功能更简单,可以看作是小程序组件的子集。因此可以按一定的规则,把 HTML 标签映射为小程序组件,如:
完整的标签名映射规则请看: RFC 附录一
如果 HTML 标签的属性能在对应小程序组件的属性上找到对应,则进行映射,如:
完整的属性名映射规则请看: RFC 附录二
把 HTML 特有的事件在小程序端找到相似的事件进行映射,如:
完整的事件映射规则请看: RFC 附录三
前文介绍了我们会把 HTML 标签映射为小程序组件,但是 H5 应用中使用到的 CSS 标签选择器就会失效。
因此 Taro 使用了类名去进行模拟:
Taro 提供两种内置的浏览器默认样式,可以直接引入生效:
理想很美好,但现实却略显骨感。即使 Taro 能实现 BOM、DOM API,支持使用 HTML 标签等,同构方案还是存在着一些框架层面抹平不了的差异。以下列举出若干主要限制:
在 H5 中我们可以调用 DOM API 同步获取元素的尺寸:
但是在小程序中,获取元素尺寸的 API 是异步的:
因此不能兼容那些使用了同步 DOM API 去获取元素尺寸的组件。
<canvas> 、 <video> 、 <audio> 等标签在 H5 端可以直接调用 HTMLElement 上的方法:
但是在 Taro 中,要调用组件上的原生方法,必须先创建对应的 Context :
部分样式或 CSS 选择器在小程序中不支持,如:
首先需要安装 v33 的 CLI 工具:
然后进入项目,把 packagejson 文件中 taro 相关依赖的版本修改为 ^330-alpha2 ,再重新安装依赖(建议先把 node_modules 文件夹删除)。
为了节省项目空间,同构功能是可选的,以 Taro 插件的形式提供。
首先开发者需要安装插件 @tarojs/plugin-html :
然后配置使用此插件:
为了验证同构功能的可用性和效果,我们对 CSS 样式库 WEUI 、React 组件库 Antd Design Mobile 、Vue2 组件库 VantUI 的所有组件进行了测试。
测试效果比较理想,甚至稍微超出我们的预期,配合各组件库自身的按需加载能力,能以小巧的体积使用丰富的组件,相信各位开发者会喜欢这个功能。
仓库地址: taro-weui
WEUI 是一个 CSS 的样式库,与框架无关,兼容性比较高,大部分组件能直接使用。
仓库地址: taro-antd-mobile
能直接兼容使用的组件大概为 80%,主要问题在于:
仓库地址: taro-vant
VantUI 的组件十分丰富,能直接兼容使用的组件大概为 70%。部分开发者会在 Taro 中配合使用 Vant Weapp,但 Vant Weapp 只能运行在微信小程序,因此对 VantUI 的直接适配是一个很好的补充。
适配过程主要遇到的问题有:
同构方案还在持续优化中,部分实现还没有最终定稿。欢迎各位开发者到我们的论坛下留言,提出您的宝贵意见~: 同构方案 RFC 。
欢迎关注凹凸实验室
web培训内容一般来说分为面授课和网课。面授培训课程大体上分为HTML5+CSS3、JS交互设计、Node开发、前端框架、小程序与APP开发、就业指导六大阶段。网课的内容涵盖则比较广泛,免费的和付费的都有。学完之后做的工作也比较多,具体学web的话比较推荐达内教育,该机构已从事19年IT技术培训,累计培养100万学员,并且独创TTS80教学系统,1v1督学,跟踪式学习,有疑问随时沟通。感兴趣的话点击此处,免费学习一下
参加web培训需要学的知识如下:
1、JavaScript脚本语言:有了基础规则,样式什么的也有了,然后就有了一个新的语言:JavaScript,世界上流行的脚本语言。
2、jQuery:基础学习的差不多之后就要提高我们的效率了,这时候大家肯定要接触一个库或者是叫框架也算得上,那就是受欢迎的简单易学的jQuery。
想了解更多有关web学习的相关信息,推荐咨询达内教育。该机构致力于面向IT互联网行业,培养软件开发工程师、测试工程师、UI设计师、网络营销工程师、会计等职场人才,拥有行业内完善的教研团队,强大的师资力量,确保学员利益,全方位保障学员学习;更是与多家企业签订人才培养协议,全面助力学员更好就业。达内IT培训机构,试听名额限时抢购。
以上就是关于微信小程序_组件全部的内容,包括:微信小程序_组件、Taro 3.3 alpha 发布:用 ant-design 开发小程序、web学习哪些内容学完之后可以做哪些工作等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)