一、快手推广-使用内置组件
快手小程序框架提供了一些内置组件帮助开发者快速开发小程序。内置组件的使用上有一些限制
二、关于属性和控制
ksml文件中小程序组件的数据来源一般是通过属性(attribute)传入,在使用中通过模版绑定和setData修改这些属性,可以直接控制组件内部的值。对于部分组件,例如表单组件,使用的数据源除了传入的属性之外同时还会受其他一些交互控制(例如键盘输入、点击操作等),这时候属性的设置可能会失效。
例如,以下需要使用清空input输入框的场景。期望结果是输入框输入内容之后,点击清空按钮之后把内容设置成空字符串达到清空的效果。但实际上由于input的属性接收到的value并未发生改变(value自始至终都是空字符串),所以这次setData并不能有效传递到input中,视图不会改变。
<input value={{value}} />
<button bindtap="clearValue">清空输入框</button>
-------------------------------------------------------------------------
Page({
data: {
value: '',
},
clearValue(){
this.setData({
value: '',
});
},})
对于这种情况,需要开发者修改一下实现。在input改变后将数据同步到外部组件中更新对应的属性。
<input value={{value}} bindchange="syncValue" />
<button bindtap="clearValue">清空输入框</button>
-------------------------------------------------------------------------
Page({
data: {
value: '',
},
syncValue(e){
this.setData({
value: e.detail.value,
});
},
clearValue(){
this.setData({
value: '',
});
},})

三、关于原生组件
1.为了保证小程序的性能和交互效果,部分组件使用原生组件实现,使用客户端渲染,如下:
video
input
textarea
canvas
cover-view
cover-image
2.原生组件使用上会有一些限制:
原生组件的层级是最高的,表现为原生组件无法被其他web组件覆盖。如果需要覆盖,可以使用cover-view、cover-image嵌套实现。
部分样式无法在原生组件上生效
原生组件在自定义的滚动元素中展示有可能不符预期。原生组件尽量跟随页面滚动,不要放在其他滚动元素中。
文章均来自互联网如有不妥请联系作者删除QQ:314111741 地址:http://www.mqs.net/post/8872.html
添加新评论