博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
微信小程序小结(2) ------ 自定义组件
阅读量:5267 次
发布时间:2019-06-14

本文共 1318 字,大约阅读时间需要 4 分钟。

在小程序中有模板跟组件的概念。但模板更多的用于内容的展示,更复杂的交互逻辑就没办法了。所以在小程序中也定义了一些组件来解决一些简单逻辑的功能。

但有时预定义的组件并不能满足我们的需求,这时就需要我们自己定义了。

这里主要讲用Component构造器来自定义组件。

本例为一个评分的小组件。

首先定义组件

创建自定义组件目录(与正常页面结构相同拥有:.js,.json,.wxml,.wxss)

在mycom.json中声明该文件为Component 构造器构造的组件

{    "component": true}

在mycom.js中定义组件的逻辑

Page({});    //有时微信的编译器会报错,添上这句Component({    properties:{        initscore:{    //属性名,调用组建时传值用的            type:Number,    //类型(必填),目前接受的类型包括:String, Number, Boolean, Object, Array, null(表示任意类型)            value:0 //属性初始值(可选)        }    },    data: {        list: [],        ...        //可以写一些组件内部用的数据    },    
methods: { checked(e) { //自定义组件可以触发任意的事件,引用组件的页面可以监听这些事件 this.triggerEvent('getscoreevent',this.data.score) }, }, //注意声明周期函数也有所变化 attached: function() { //... }})

其余的mycom.wxml跟mycom.wxss和正常的页面一样写。

注意:在 properties 定义段中,属性名采用驼峰写法(propertyName);在 wxml 中,指定属性值时则对应使用连字符写法(component-tag-name property-name="attr value"),应用于数据绑定时采用驼峰写法(attr="{

{propertyName}}")。

引用自定义的组件

在index.json中声明要用的组件名字及路径

{    "usingComponents":    {        "mycom": "../mycom/mycom"    }}

在index.wxml中

//监听并响应事件

在index.js中

getScore(e) {    let score = e.detail;  //获取组件内数据的变化    this.setData({        score: score    })}

例子效果:

1326960-20180131164522500-1536739113.png

项目地址:

转载于:https://www.cnblogs.com/adoctors/p/8393152.html

你可能感兴趣的文章
软件开发与模型
查看>>
161017、SQL必备知识点
查看>>
kill新号专题
查看>>
MVC学习系列——Model验证扩展
查看>>
mysqladmin 修改和 初始化密码
查看>>
字符串
查看>>
vue2.x directive - 限制input只能输入正整数
查看>>
实现MyLinkedList类深入理解LinkedList
查看>>
自定义返回模型
查看>>
C#.NET 大型通用信息化系统集成快速开发平台 4.1 版本 - 客户端多网络支持
查看>>
HDU 4122
查看>>
Suite3.4.7和Keil u3自带fx2.h、fx2regs.h文件的异同
查看>>
打飞机游戏【来源于Crossin的编程教室 http://chuansong.me/account/crossincode 】
查看>>
[LeetCode] Merge Intervals
查看>>
【翻译自mos文章】当点击完 finishbutton后,dbca 或者dbua hang住
查看>>
Linux编程简介——gcc
查看>>
2019年春季学期第四周作业
查看>>
MVC4.0 利用IActionFilter实现简单的后台操作日志功能
查看>>
windows下mongodb安装与使用
查看>>
rotate the clock
查看>>