引自官方文档
在微信小程序中存在一类特殊的组件,该类组件是由客户端创建的原生组件。这些组件有:
camera
canvas
input(仅在focus时表现为原生组件)
live-player
live-pusher
map
textarea
video
由于原生组件脱离在 webview 渲染流程外,因此在使用时有以下限制:
原生组件的层级是最高的,所以页面中的其他组件无论设置 z-index 为多少,都无法盖在原生组件上。
后插入的原生组件可以覆盖之前的原生组件。
原生组件还无法在 picker-view 中使用。
基础库 2.4.4 以下版本,原生组件不支持在 scroll-view、swiper、movable-view 中使用。
部分css样式无法应用于原生组件,例如:
无法对原生组件设置 css 动画
无法定义原生组件为 position: fixed
不能在父级节点使用 overflow: hidden 来裁剪原生组件的显示区域
原生组件的事件监听不能使用 bind:eventname 的写法,只支持 bindeventname。原生组件也不支持 catch 和 capture 的事件绑定方式。
原生组件会遮挡 vconsole 弹出的调试面板。在工具上,原生组件是用web组件模拟的,因此很多情况并不能很好的还原真机的表现,建议开发者在使用到原生组件时尽量在真机上进行调试。
uchart 绘制图表由于层级高导致拉出的抽屉无法覆盖图表问题。
方案一:使用cover-view、cover-image代替vi