微信小程序 - 原生组件
最近在做微信小程序直播以及视频这块,因此需要用到小程序相应的原生组件,原生组件的一些限制与了解:
1.原生组件: camera/canvas/live-player/live-pusher/map/textarea/video/input(仅在focus时表现为原生组件) 2.原生组件的使用限制 (1)原生组件的层级是最高的 a.无论设置 z-index 为多少,都无法盖在原生组件上 b.后插入的原生组件可以覆盖之前的原生组件 c.解决层级限制: <1>.使用cover-view/cover-image[原生]组件,但是只能覆盖在部分原生组件上面 <2>.原生组件同层渲染 0.同层渲染是默认开启的 1.在支持同层渲染后,原生组件与其它组件可以随意叠加,有关层级的限制将不再存在 2.组件内部仍由原生渲染,样式一般还是对原生组件内部无效 3.当前 video, map, live-player, live-pusher, canvas(2d) 组件已支持同层渲染 <3>原生组件相对层级 1.微信小程序在 v2.7.0 及以上版本支持在样式中声明 z-index 来指定原生组件的层级 2.该 z-index 仅调整原生组件之间的层级顺序,其层级仍高于其他非原生组件 (2)原生组件还无法在 picker-view 中使用 a.基础库 2.4.4 以下版本,原生组件不支持在 scroll-view、swiper、movable-view 中使用 (3)部分CSS样式无法应用于原生组件 b.无法对原生组件设置 CSS 动画 c.无法定义原生组件为 position:fixed d.不能在父级节点使用 overflow: hidden 来裁剪原生组件的显示区域 (4)原生组件的事件监听限制 a.不能使用 bind:eventname 的写法,只支持 bindeventname b.原生组件也不支持 catch 和 capture 的事件绑定方式 (5)原生组件会遮挡 vConsole 弹出的调试面板 a.原生组件在开发工具上是用web组件模拟的,因此很多情况并不能还原真机的表现,因此使用到原生组件尽量在真机上进行调试