微信小程序(七、常用小程序组件及自定义封装组件)

本文详细介绍了微信小程序中的常用组件,包括视图容器、swiper组件和表单组件,强调了组件属性和使用注意事项。此外,还探讨了如何使用第三方UI组件库 vantUI,并提供了详细的引入和配置步骤。最后,讲解了自定义封装组件的方法,以提高代码复用性和项目效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

常用小程序组件

1、组件介绍

文档地址:视图容器 | 微信开放文档

框架为开发者提供了一系列基础组件,开发者可以通过组合这些基础组件进行快速开发。一个组件通常包括开始标签和结束标签,属性用来修饰这个组件,内容在两个标签之间。

2、swiper组件

文档地址:swiper | 微信开放文档

案例:使用swiper展示轮播图

逻辑层定义数据

data: {
 background: ["https://storage.lynnn.cn/assets/markdown/91147/pictures/2020/11/bce52a5f143cd3e25c6c39c7a0fd7f276ce43bad.png?sign=f4ec5771f7eabd11226fe5f4b7f0f6e8&t=5fa403f2",
            "https://storage.lynnn.cn/assets/markdown/91147/pictures/2020/11/6018ac895dd29437b1d023c121c7539ecf2e9221.jpeg?sign=47da092f8a6a1650df3da3dd3dd40cb3&t=5fa4041d",
            "https://storage.lynnn.cn/assets/markdown/91147/pictures/2020/11/f81d133833b89a18cb1842f449810d16ec5d3c78.jpeg?sign=22eadb72caac161df642aa18b84127a8&t=5fa40431"
        ]
},

图片采用image组件进行展示,其支持对图片进行缩放、裁剪处理。关于image组件的信息,可以访问文档:image | 微信开放文档

实际在wxml中展示

<view>
  <swiper indicator-dots indicator-color="rgba(52, 155, 252,1)" autoplay>
  <swiper-item wx:for="{{background}}" wx:key="index">
   <image src="{{item}}" style="width: 100%; height: 100%;"></image>
  </swiper-item>
  </swiper>
</view>

在设计图片的时候,一定要和设计人员对接好图片的合适尺寸比例。

3、表单组件

小程序项目中但凡是涉及到表单的地方,都需要使用表单组件。表单组件的作用就是用于组成表单的。

注意点:

  • 这里面表单组件部分的标签继续沿用html的标签,与之前完全同名

  • 组件标签的部分属性也与之前html属性一致,但是更多的是不一致的

文档地址:button | 微信开放文档

<!-- 表单 -->
  <!-- 移动端登录表单 -->
  <view class="login_form">
    <image src="/assets/icon/home-seleted.png"/>
    <input type="text" placeholder="用户名"/>
    <input type="password" placeholder="密码"/>
    <button type="primary">登录</button>
    <view class="login_button" hover-class="active">
      view登录
    </view>
  </view>

wxss

/* pages/list/list.wxss */
input{
  border-bottom:1px solid gray;
  height: 120rpx;
  width: 600rpx;
}
.login_form{
  width: 750rpx;
  display: flex;
  flex-direction: column;
  align-items: center;
}
button{
  margin-top: 30rpx;
}
image{
  width: 120rpx;
  height: 120rpx;
}
.login_button{
  margin-top: 30rpx;
  background-color: cadetblue;
  color: white;
  width: 430rpx;
  height: 100rpx;
  border-radius: 10rpx;
  text-align: center;
  line-height: 100rpx;
  font-weight: bold;
}
.active{
  /* 透明度 */
  opacity: 0.7;
}

按钮button组件有一个非常实用的属性open-type,后续可以通过该属性赋予按钮高级的功能(微信开放能力),例如:

  • 获取用户信息的时候

  • 唤起其他App的时候

    • 不是任意app都可以唤起,只能唤起来源app

  • 获取用户手机号

  • ....

<!-- button open-type属性的多种功能 -->
    <button type="default" open-type="chooseAvatar" bindchooseavatar="getAvatar">测试按钮</button>

使用第三方UI组件库

〇进入项目包目录生成packge.json文件

npm init -y

①安装vantUI

# 通过 npm 安装
npm i @vant/weapp -S --production

②app.json 去除style2版本配置

将 app.json 中的 "style": "v2" 去除

③配置 project.config.json

{
  ...
  "setting": {
    ...
    "packNpmManually": true,
    "packNpmRelationList": [
      {
        "packageJsonPath": "./package.json",
        "miniprogramNpmDistDir": "./miniprogram/"
      }
    ]
  }
}
​

关闭微信开发者工具,重启进入项目

④构建npm

打开微信开发者工具,点击 工具 -> 构建 npm,并勾选 使用 npm 模块 选项,构建完成后,即可引入组件。

注意如果使用的是新版本微信小程序开发者工具,修改上面的配置"miniprogramNpmDistDir": "./"

⑤在使用的地方引入组件即可

xxxx.json

{
  "usingComponents": {
    "van-button": "@vant/weapp/button/index"
  }
}

⑥在页面组件中使用

xxx.wxml

<van-button type="primary">按钮</van-button>

自定义封装组件

可以像在Vue和React中一样,将可复用的部分使用组件进行封装,可以通过模板标签进行调用。

文档地址:自定义组件 | 微信开放文档

①建立components文件并创建一个组件

②根据需要进行文件划分

components\mySwiper.wxml

<swiper indicator-dots  indicator-color="rgba(52, 155, 252,1)" autoplay>
  <swiper-item wx:for="{{data}}" wx:key="index">
   <image src="{{item}}" style="width: 100%; height: 100%;"></image>
  </swiper-item>
  </swiper>

components\mySwiper.js

// components/mySwiper.js
Component({
  /**
   * 组件的属性列表
   * 接收父传子的参数信息
   */
  properties: {
    // 父传子props的类型限定
    data:{
      type:Array
    }
  },
​
  /**
   * 组件的初始数据
   */
  data: {
  },
​
  /**
   * 组件的方法列表
   */
  methods: {
​
  }
})
​

③在页面组件中调用自定义组件

pages\list\list.json

{
  // 组件注册
  "usingComponents": {
    // 调用名称:文件路径
    "mySwiper":"/components/mySwiper"
  }
}

pages\list\list.wxml

<!-- data是传递给自定义组件的参数  父传子 -->
​
<mySwiper data="{{background}}"></mySwiper>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值