
一、新建一个文件夹,自己命名。以后所有的自定义组件都存放于此。
二、在此文件夹下新建一个自行命名的文件夹,命名最好语义化,与里面自定义组件的名字相呼应。
三、在新建的文件夹内新建一个Component文件 命名也是自定义。
四、在xxx里面把事先写好的ml和ss以及js文件复制进去。
1、把提前写好的页面布局复制到这个此文件里面。写法和在普通页面的写法一样 {{}}是插值表达式。这里可以直接使用js里面定义的数据。
eg:
1、组件自定义的属性列表写在 properties里面。需要写成对象的形式
eg:
2、组件的方法列表写在 methods里面
eg:
五、在需要引用自定义组件页面文件的xxx.json里面引用。
注意:引用的时候,不可以以./开头。前面命名可以自命名,不必和后面名字一样。
六、在需要引用的页面里的的xxx.wxml里写已经命名好的组件。
组件的名字为自定义命名。
eg:
因为组件是自己写的,并非微信提供的官方组件,所以如果想要获取触发事件的话 ,需要写一个同步组件回传数据
触发自定义事件用triggerEvent。在需要调用的方法内写this.triggerEvent(“自定义属性名”,‘需要更新的数据’)
eg:
然后将此事件绑定到页面中。绑定事件需要用bind:自定义的方法名=“js中定义的方法”
利用data-active="变量名"属性添加需要变化的变量
eg:
xxx.wxml内写法:
注意:想要在页面中使用自定义的组件属性时,必须要现在定义组件的文件夹内的js文件中,先去定义属性,然后才可以引入使用。
一、小程序创建组件过程
1、首先创建一个components目录,下面放文件(组件文件)
2、创建两个组件文件(Listitem和lunbo)
3、在pages文件夹json文件里面,进入对应的模块内引用Listitem和lunbo组件
4、在wxml文件中使用标签属性来引入组件
自定义组件中和页面中的class名重名,是不会产生冲突的;
页面中的class和自定义组件中的class重名;同样不会产生冲突;
二、父传子:
三、子传父:
子组件绑定事件handle事件(bindtap=“handle”)
最近做项目的时候,需要做一个截图功能。用了一个别人写的截图工具,发现截出的 图质量下降了 ,但是我们图片要用来做识别, 需要保证截出的图质量不下降。而且也不支持通过拖动来调整截图框的大小。所以这个截图工具无法满足需求。因为所以,就自己动手写了一个截图组件。
下面介绍一下实现原理和使用方法。
组件 wxml 的层次结构图如下:
最后截图,通过四个点的位置计算出截图框的位置,然后放大对应原图大小的位置,得到在原图中的 (x, y, width, height) ,最后通过官方提供的 canvas 接口截图。
假设我们的应用文件结构如下:
调用组件时,需要传入 cropperData 、 cropperMovableItems 、 cropperChangableData ,因为数据和事件都是绑定在 Page 上的,所以要避免使用组件里面已经被占用的命名。
/pages/index/index.wxml
/pages/index/index.js
最后引入组件的样式
/pages/index/index.wxss
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)