小程序自定义组件

小程序自定义组件,第1张

新手在第一次自定义组件的时候,首先写出来需要定义的组件的内容和布局,防止不熟练而出错。

一、新建一个文件夹,自己命名。以后所有的自定义组件都存放于此。

二、在此文件夹下新建一个自行命名的文件夹,命名最好语义化,与里面自定义组件的名字相呼应。

三、在新建的文件夹内新建一个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


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/11424057.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-16
下一篇2023-05-16

发表评论

登录后才能评论

评论列表(0条)

    保存