微信小程序学习笔记五 常见组件

1. 常见组件

  • 重点讲解小程序中常用的布局组件
    在这里插入图片描述

1.1 view

代替 原来的div标签

<!-- pages/index/index.wxml -->
<view hover-class="h-class">
    点击我试试
</view>
/* pages/index/index.wxss */
.h-class{
  color: green;
}

1.2 text

  1. 文本标签
  2. 只能嵌套text
  3. 长按文字可以复制 (只有该标签有这个功能)
  4. 可以对空格 回车 进行编码
属性名类型默认值说明
selectableBooleanfalse文本是否可选
decodeBooleanfalse是否解码
  <!-- text 标签测试 -->
  <text selectable="false" decode="false">&nbsp;</text>


1.3 image

  1. 图片标签, image组件默认宽度320px、高度240px
  2. 支持懒加载
属性名类型默认值说明
srcString图片资源地址
modeString‘scaleToFill’图片裁剪、缩放的模式
lazy-loadBooleanfalse图片懒加载

mode有效值:

  • model 有13种模式,其中4种是缩放模式, 9种是裁剪模式
模式说明
缩放scaleToFill不保持纵横比缩放图片, 使图片的宽高完全拉伸至填满image元素
缩放aspectFit保持纵横比缩放图片, 使图片的长边能完全显示出来
缩放aspectFill保持纵横比缩放图片, 只保证图片的短边能完全显示出来
缩放widthFix宽度不变, 高度自动变化, 保持原图宽高比不变
裁剪top不缩放图片, 只显示图片的顶部区域
裁剪bottom不缩放图片, 只显示图片的底部区域
裁剪center不缩放图片, 只显示图片的中间区域
裁剪left不缩放图片, 只显示图片的左边区域
裁剪right不缩放图片, 只显示图片的右边区域
裁剪top left不缩放图片, 只显示图片的左上边区域
裁剪top right不缩放图片, 只显示图片的右上边区域
裁剪bottom left不缩放图片, 只显示图片的左下边区域
裁剪bottom right不缩放图片, 只显示图片的右下边区域

1.4 swiper

微信内置轮播图组件

  • swiper : 块视图容器。
  • swiper-item: 滑块, 默认宽度和⾼度都是100%

在这里插入图片描述

  • 默认宽度 100% 高度150px
属性名类型默认值说明
indicator-dotsBooleanfalse是否显示面板指示点
indicator-colorColorrgb(0,0,0,.3)指示点颜色
indicator-active-colorColor#000000当前选中的指示点颜色
autoplayBooleanfalse是否自动切换
intervalNumber5000自动切换时间间隔
circularBooleanfalse是否循环轮播
<!-- 
"pages/SwiperText/SwiperText.wxml",
1. 轮播图的外层容器: swiper
2. 每一个轮播项: swiper-item
3. swiper存在默认样式 
    - width: 100%
    - height: 150px image 存在默认宽度和高度 320 * 240
4. swiper 高度无法实现由内容撑开
5. 先找出来原图的高度和宽度, 等比例给swiper定宽度和高度
    - 原图的宽高880 * 388
    - swiper宽度 / swiper 高度 = 原图宽度 / 原图高度
    - swiper高度  = swiper 宽度 * 原图的高度 / 原图的宽度
      height : calc(100vw * 338 / 880)

 -->
<swiper indicator-dots="true" autoplay>
  <swiper-item>
    <image mode="widthFix" src="https://i0.hdslb.com/bfs/feed-admin/5ef9aa23c480cf40998be6f0897bcad4ad8e8e3f.jpg@880w_388h_1c_95q">
    </image>
  </swiper-item>
  <swiper-item>
    <image mode="widthFix" src="	https://i0.hdslb.com/bfs/feed-admin/c7c308997d904ec7770062fb0e2062dfeaf54f89.png@880w_388h_1c_95q">
    </image>
  </swiper-item>
  <swiper-item>
    <image mode="widthFix" src="	https://i0.hdslb.com/bfs/feed-admin/5f60c09eb96f604bc4fc8ea78ef5b3be6ef67963.png@880w_388h_1c_95q">
    </image>
  </swiper-item>
</swiper>
/* pages/SwiperText.wxss */
swiper{
  width: 100%;
  height : calc(100vw * 338 / 880)
}
image{
  width: 100%;
}

1.5 navigator

导航组件 类似超链接标签

属性名类型默认值说明
targetStringself在哪个目标上发生跳转, 默认当前小程序, 可选值 self/miniProgram
urlString当前小程序内的跳转连接
open-typeStringnavigate跳转方式
  • open-type 有效值:
说明
navigate保留当前页面, 跳转到应用内的某个页面, 但是不能跳到 tabbar 页面
redirect关闭当前页面, 跳转到应用内的某个页面, 但是不允许跳转到 tabbar 页面
switchTab跳转到tabBar页面, 并关闭其他所有非 tabBar 页面
reLaunch关闭所有页面, 打开到应用内的某个页面
navigateBack关闭当前页面, 返回上一页面或多级页面, 可通过 getCurrentPages() 获取当前的页面栈, 决定需要返回几层
exit退出小程序, target="miniProgram"时生效
<!--pages/navigatorText/navigatorText.wxml-->
<!-- 
  导航组件: navigator
  0 相当于一个块级元素, 默认会换行 可以直接加宽高
  1. url: 要跳转的页面路径 绝对路径|相对路径
  2. target: 要跳转到当前小程序页面 还是其他的小程序页面
        self: 默认值 自己
        miniProgram: 其他的小程序页面
  3. open-type: 跳转的方式
 -->
<view>
  <navigator url="/pages/SwiperText/SwiperText">轮播图页面</navigator>
  <navigator url="/pages/SwiperText/SwiperText">轮播图页面</navigator>
</view>

1.6 rich-text

富文本标签

可以将字符串解析成 对应标签, 类似Vue 中v-html功能

<!--pages/RichText/RichText.wxml-->
<!-- 1. 加载 节点数组-->
<rich-text nodes="{{nodes}}" bindtap="tap"></rich-text>
<!-- 2.加载 字符串 -->
<rich-text nodes='<img src="https://developers.weixin.qq.com/miniprogram/assets/images/head_global_z_@all.p
ng" alt="">'></rich-text>
// index.js
Page({
  data: {
    nodes: [{
      name: 'div',
      attrs: {
        class: 'div_class',
        style: 'line-height: 60px; color: red;'
     },
      children: [{
        type: 'text',
        text: 'Hello&nbsp;World!'
     }]
   }]
 },
  tap() {
    console.log('tap')
 }
})

1.6.1 nodes 属性

nodes属性支持 字符串标签节点数组

属性说明类型必填备注
name标签名String支持部分受信任的HTML节点
attrs属性Object支持部分受信任的属性, 遵循 Pascal命名法
children子节点列表array结构和 nodes一致

文本节点: type = text

属性说明类型必填备注
text文本string支持entities
  • nodes不推荐使用String类型, 性能会有所下降
  • rich-text 组件内屏蔽所有节点的事件
  • attrs属性不支持id, 支持 class
  • name 属性大小写不敏感
  • 如果使用了不受信任的html'节点, 该节点及其所有子节点将会被移除
  • img标签仅支持网络图片

1.7 button

在这里插入图片描述

<button
  type="default"
  size="{{defaultSize}}"
  loading="{{loading}}"
  plain="{{plain}}"
>
 default
</button>
属性类型默认值必填说明
sizestringdefault按钮的大小
typestringdefault按钮的样式类型
plainbooleanfalse按钮是否镂空, 背景色透明
disabledbooleanfalse是否禁用
loadingbooleanfalse名称前是否带 loading 图标
form-typestring用于’'组件, 分别会触发 ''组件的
open-typestring微信开发能力

1.7.1 size 的合法值

说明
default默认大小
mini小尺寸

1.7.2 type 的合法值

说明
primary绿色
default白色
warn红色

1.7.3 form-type的合法值

说明
submit提交表单
reset重置表单

1.7.4 open-type 的合法值

说明
contact打开客服会话, 如果用户在会话中点击消息卡片后返回小程序, 可以从 bindcontact 回调中获得具体信息
share触发用户转发
getPhoneNumber获取用户手机号, 可以从bindgetphonenumber回调中获取到用户信息`
launchApp打开 APP, 可以通过app-parameter属性设定向APP传的参数
openSetting打开授权设置页
feedback打开"意见反馈"页面, 用户可提交反馈内容并上传日志, 开发者可以登录小程序管理后台后进入左侧菜单 "客服反馈"页面获取到反馈内容

1.8 icon

属性类型默认值必填说明
typestringicon的类型, 有效值: success, success_no_circle, info,warn,waiting,cancel, download,search, clear
sizenumber/string23icon的大小
colorstringicon的颜色, 同css的color

在这里插入图片描述

js

Page({
  data: {
    iconSize: [20, 30, 40, 50, 60, 70],
    iconType: [
      'success', 'success_no_circle', 'info', 'warn', 'waiting', 'cancel',
'download', 'search', 'clear'
   ],
    iconColor: [
      'red', 'orange', 'yellow', 'green', 'rgb(0,255,255)', 'blue', 'purple'
   ],
 }

wxml

<view class="group">
  <block wx:for="{{iconSize}}">
    <icon type="success" size="{{item}}"/>
  </block>
</view>
<view class="group">
  <block wx:for="{{iconType}}">
    <icon type="{{item}}" size="40"/>
  </block>
</view>
<view class="group">
  <block wx:for="{{iconColor}}">
    <icon type="success" size="40" color="{{item}}"/>
  </block>
</view>



1.9 radio

可以通过 color属性来修改颜色

在这里插入图片描述
需要搭配 radio-group ⼀起使⽤


1.10. checkbox

可以通过 color属性来修改颜色

在这里插入图片描述
需要搭配 checkbox-group ⼀起使⽤

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值