cari
Rumahapplet WeChatPembangunan program mini小程序自定义组件的实现方法(代码)

本篇文章给大家带来的内容是关于小程序自定义组件的实现方法(代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

2114713864-5b9b3b8856d4e_articlex.png
File:threecolgrid.js

// components/threeColumnGrid/threecolgrid.js
Component({
  /**
   * 组件的属性列表
   */
  properties: {
    // 传入的数据
    booksData:{
      type: Array,
      value:[]
    },
    // grid的外边距
    mainMargin:{
      type: Number,
      value: 5
    },
    // grid的内边距
    mainPadding:{
      type:Number,
      value:10
    },
    // 行间距
    rowSpace:{
      type:Number,
      value:20
    },
    // 列间距
    colSpace:{
      type:Number,
      value:7
    }
  },

  /**
   * 组件的初始数据
   */
  data: {

  },

  /**
   * 组件的方法列表
   */
  methods: {
    checkIn:function(e){
      console.log(e.currentTarget.dataset)
      // 触发action事件,triggerEvent函数接受三个值:事件名称、数据、选项值  
      this.triggerEvent('action', e.currentTarget.dataset, {}) 
    }
  }
})
<!--components/threeColumnGrid/threecolgrid.wxml-->
<!-- <view class=&#39;main-content&#39;> -->
  <view class=&#39;bookbox&#39; style=&#39;padding:{{mainPadding}}rpx;margin:{{mainMargin}}rpx;&#39;>
    <block wx:for="{{booksData}}" wx:key="{{item.id}}">
      <view class=&#39;bookinfo&#39; style=&#39;margin-bottom: {{rowSpace}}rpx;&#39;>
        <image src=&#39;{{item.url}}&#39; mode="widthFix" style=&#39;width:{{(740 - 2*mainPadding - 2*mainMargin)/3 - colSpace*3}}rpx;&#39;></image>
        <view class="title" style=&#39;width:{{(740 - 2*mainPadding - 2*mainMargin)/3 - colSpace*3}}rpx;&#39;>{{item.title}}</view>
        <view class=&#39;actionBar&#39; style=&#39;width:{{(740 - 2*mainPadding - 2*mainMargin)/3 - colSpace*3}}rpx;&#39;>
          <block wx:if="{{item.status == 0}}">
            <view class=&#39;bookstatus disable&#39;>暂缺货</view>
            <view bindtap=&#39;checkIn&#39; data-bookid=&#39;{{item.id}}&#39; data-status=&#39;{{item.status}}&#39; class=&#39;iconfont icon-219-heart icon&#39;></view>
          </block>
          <block wx:else>
            <view class=&#39;bookstatus enable&#39;>可借阅</view>
            <view bindtap=&#39;checkIn&#39; data-bookid=&#39;{{item.id}}&#39; data-status=&#39;{{item.status}}&#39; class=&#39;iconfont icon-059-cart icon&#39;></view>
          </block>          
        </view>
      </view>
    </block>
  </view>
<!-- </view> -->
/* components/threeColumnGrid/threecolgrid.wxss */
@import "../../iconfont.wxss";
/* .main-content{
  background: #FFF;
  margin-top: 155rpx;
  padding:10rpx;
} */

.bookbox{
  display: flex;
  flex-direction: row;
  justify-content: space-between;
  flex-wrap:wrap;
  background: #FFF;
}
.bookbox .bookinfo{
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  /* border: 1rpx solid #f5a32d; */
}
.bookbox .bookinfo image{
  display: flex;
  /* 调节图书列 */
  /* width:220rpx;  */
  border-top-left-radius: 10rpx;
  border-top-right-radius: 10rpx
}
.bookbox .bookinfo .title{
  display: flex;
  flex-wrap: wrap;
  font-size: small;
  margin-bottom: 5rpx;
  /* 调节图书列 */
  /* width:300rpx; */
  /* width:220rpx; */
  height: 70rpx;
}
.bookbox .bookinfo .actionBar{
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0rpx 5rpx 5rpx 5rpx;
  font-size: smaller;
  /* width:200rpx; */
}

.bookbox .bookinfo .actionBar .bookstatus{
  display: flex;
  border-radius: 10rpx;
  padding:0rpx 5rpx;
}

.bookbox .bookinfo .actionBar .enable{
  color: #FFF;
  background-color: #f5a32d;
}

.bookbox .bookinfo .actionBar .disable{
  color: #FFF;
  background-color: #727171;
}

.bookbox .bookinfo .actionBar .icon{
  font-size: 15pt;
  color: #facea7;
}

.bookinfo-empty{
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 5rpx;
  width:230rpx;
}

使用组件

  //事件处理函数
  getCheckValues: function(e){
    console.log('checkbox发生change事件,携带value值为:', e.detail)
  },
{

  "usingComponents": {
    "three-col-grid":"/components/threeColumnGrid/threecolgrid"
  },

}
  <view class=&#39;test&#39;>
    <three-col-grid booksData="{{BookList}}" bind:action="getCheckValues"></three-col-grid>
  </view>
.test{
  display: flex;
  justify-content: center;
  /* border: 1rpx #444 solid; */
}

相关推荐:

php实现Mongodb自定义方式生成自增ID的方法       

详解javascript实现自定义事件_javascript技巧

Atas ialah kandungan terperinci 小程序自定义组件的实现方法(代码). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Nordhold: Sistem Fusion, dijelaskan
4 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
Mandragora: Whispers of the Witch Tree - Cara Membuka Kunci Cangkuk Bergelut
3 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌

Alat panas

SublimeText3 Linux versi baharu

SublimeText3 Linux versi baharu

SublimeText3 Linux versi terkini

MantisBT

MantisBT

Mantis ialah alat pengesan kecacatan berasaskan web yang mudah digunakan yang direka untuk membantu dalam pengesanan kecacatan produk. Ia memerlukan PHP, MySQL dan pelayan web. Lihat perkhidmatan demo dan pengehosan kami.

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Penyesuai Pelayan SAP NetWeaver untuk Eclipse

Penyesuai Pelayan SAP NetWeaver untuk Eclipse

Integrasikan Eclipse dengan pelayan aplikasi SAP NetWeaver.

VSCode Windows 64-bit Muat Turun

VSCode Windows 64-bit Muat Turun

Editor IDE percuma dan berkuasa yang dilancarkan oleh Microsoft