小程序终于可以支持自定义组件了。毕业党写一个实用的按钮组件,望指教
按照官方指导,先创建如下目录:
.json文件:
{ "component":true }
.js文件:
// component/mynavigate.js Component({ properties: { title: { //按钮文字 type: String }, url: { //跳转位置 type: String }, kind:{ //跳转类型 type:String }, Mclass:{ //按钮样式 type:String } }, data: { disabled: false }, methods: { _gonavigator: function () { var that = this if (that.data.disabled) return; this.setData({ disabled: true }) //防止重复点击 switch(that.data.kind) { case "redirect": wx.redirectTo({ url: this.data.url, }) break; case "navigate": wx.navigateTo({ url: this.data.url, complete: function () { setTimeout(function () { that.setData({ disabled: false }) }, 3000);}}) break; } } } })
.wxml文件:
{{title}}
.wxss文件:
/* component/mynavigate.wxss */ .diybtn{ width:100%; height:100rpx; background: #1aad19; color:white; font-size:40rpx; text-align: center; line-height: 100rpx; } .cir{ border-radius: 100rpx; } .black{ background:#353535; } .long-cir{ width: 94%; border-radius: 100rpx; }
以上组件代码完毕,接下来就是在需要它的页面上引用了。
在引用的.json文件里:
{
"usingComponents":{
"自己取名字":"/component/navigate/navigate"
}
}
在引用的.wxml文件里:
<自己去的组件名 title="领取代金券" Mclass="diybtn black long-cir" url="/pages/redeem/index" kind="navigate" />
不错,就这么一句。代码看着清爽多了。
在引用的.wxss文件里:
自己取的组件名{ // 这里相当于在组件外面的一个view
display:flex;
width:100%;
box-sizing:border-box;
margin-top:10rpx;
justify-content: center;
}
这是效果
用起来很方便,组件内的样式在组件的wxss里改,换个class名就好了
不知道为什么会有这个报错,请各位留言指点