微信小程序——自定义组件

以自定义一个Button为例

①新建文件夹

②再建个文件夹存放自定义组件文件

③在MyBtn.wxml中自定义主键
<button style="background: red;color: #fff;">自定义btn</button>
 ④在需要使用自定义组件的地方引入组件(以hello为例)

hello.wxml

<!--pages/hello/hello.wxml-->
<text>{{msg}}</text>
<button bindtap="update">修改</button>
<my-btn></my-btn>

 hello.json(两种方式)

相对路径方式:

{
    "usingComponents": {
        "my-btn":"../../components/MyBtn/MyBtn"
    }
}

绝对路径方式:

{
    "usingComponents": {
        "my-btn":"/components/MyBtn/MyBtn"  
    }
}
运行效果

注意:

1、创建组件的文件夹和创建页面的文件夹可以通过查看.json文件区分

2、在.js文件中,页面自定义的方法与 data同级。而组件自定义的方法放methods,methods与data同级

自定义组件实现页面跳转练习:
hello.wxml
<!--pages/hello/hello.wxml-->
<text>{{msg}}</text>
<button bindtap="update">修改</button>
<my-btn 
    btnName="跳转bindevent"
    targetUrl="/pages/bindevent/bindevent"
    bindjump="goto"
></my-btn>
<!-- <my-btn btnName="按钮3" num="3.14" arr="[1,2,3]"></my-btn> -->
<my-btn btnName="按钮2" num="{{3.14}}" arr="{{[1,2,3]}}"></my-btn>

hello.js
// pages/hello/hello.js
Page({

    data: {
        msg:"HELLO HOME"
    },
    update(){
        console.log(10000)
        this.setData({
            msg:"你好"
        })
    },
    goto(p){
        console.log(p)
        wx.navigateTo({
          url: p.detail.url,
        })
    }

})

MyBtn.wxml
<button bindtap="navto" style="background: red;color: #fff;">
    {{btnName}} {{num}} {{arr}}
</button>
 MyBtn.js
Component({
    properties:{
        btnName:{
            type:String,
            value:"默认btn"
        },
        targetUrl:String,
        num:Number,
        arr:Array
    },
    methods:{
        navto(){
            console.log(2000),
            this.triggerEvent("jump",{url:this.data.targetUrl})
        }
    },
    created(){
        console.log(1000)
        console.log(this.data)
        console.log(typeof this.data)
    }
})

 运行效果

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值