小程序常用组件

一、tabBar

tabBar的相关设置要设置在app.json中(全局配置)。

注意:tabBar中的list是数组形式,每一项都是以对象形式存在;

list中对象的数量最多5个,最少2个;

list中的对象的pagePath和text是必填项;

list中的对象设置图片时,图片必须是本地图片。

更多配置请参考tabBar官方配置文档

以下为简单示例:

javascript 复制代码
{
  "entryPagePath": "pages/index/index",
  "pages": [
    "pages/index/index",
    "pages/logs/logs"
  ],
  "window": {
    "navigationBarTextStyle": "black",
    "navigationBarTitleText": "Weixin",
    "navigationBarBackgroundColor": "#ffffff"
  },
  "tabBar": {
    "color": "#333",
    "selectedColor": "#ff5123",
    "backgroundColor": "#eeeeee",
    "list": [{
      "pagePath": "pages/index/index",
      "text": "首页",
      "iconPath": "/static/tabbar/logs-default.png",
      "selectedIconPath": "/static/tabbar/logs-active.png"
    },{
        "pagePath": "pages/logs/logs",
        "text": "日志",
        "iconPath": "/static/tabbar/home-default.png",
        "selectedIconPath": "/static/tabbar/home-active.png"
    }]
  },
  "style": "v2",
  "componentFramework": "glass-easel",
  "sitemapLocation": "sitemap.json",
  "lazyCodeLoading": "requiredComponents"
}

二、navigator

navigator是小程序中实现路由跳转的组件,常用属性为:

url:跳转路径(支持绝对和相对路径,但不支持空);

open-type:跳转方式(switchTab代表跳转的是tabBar的页面);

hover-class:点击态的样式。

更多属性参考navigator官方文档

html 复制代码
<!-- 页面跳转,url 相对路径 -->
<navigator open-type="switchTab" url="../logs/logs">跳转log</navigator>
<!-- 页面跳转,url 绝对路径 -->
<!-- open-type switchTab:跳转到页面是tabBar的页面 -->
<navigator open-type="switchTab" url="/pages/logs/logs">跳转log</navigator>
<!-- hover-class none为禁用;也可直接设置为class类名,设置点击时样式 -->
<navigator url="/pages/demo/demo">跳转demo</navigator>
<navigator hover-class="none" url="/pages/demo/demo">跳转demo</navigator>
<navigator hover-class="active" url="/pages/demo/demo">跳转demo</navigator>

三、image

image 组件是一个有**默认大小(320*240)**的盒子。

给image设置mode属性的值,可设置图片的缩放格式。

mode默认值是scaleFill ,图片拉伸填满容器;

mode设置值为aspectFit 保证缩放比,使图片长边显示出来;

mode设置值为aspectFill 保证缩放比,使图片短边显示出来。

使用原则:指定容器的大小(根据设计稿,设置image的宽高尺寸)。

更多属性参考image官方文档

html 复制代码
<!-- image src支持绝对路径和相对路径 -->
<image src="../../static/uploads/goods_1.jpg"></image>
<image src="/static/uploads/goods_1.jpg"></image>
<!-- image mode 缩放模式 -->
<image class="pic" src="/static/uploads/goods_1.jpg"></image>
<image class="pic" mode="aspectFit" src="/static/uploads/goods_1.jpg"></image>
<image class="pic" mode="aspectFill" src="/static/uploads/goods_1.jpg"></image>

.pic {
  width: 200rpx;
  height: 200rpx;
  background-color: pink;
}

四、swiper

swiper:滑块容器,只能嵌套swiper-item

swiper-item:滑块单元,可以嵌套任何内容

注意:swiper必须和swiper-item搭配使用;

swiper有默认高度150px。

更多属性查看swiper官方文档

html 复制代码
<swiper indicator-dots indicator-active-color="red">
  <swiper-item><image src="/static/uploads/slide_1.jpg"></image></swiper-item>
  <swiper-item><image src="/static/uploads/slide_2.jpg"></image></swiper-item>
  <swiper-item><image src="/static/uploads/slide_3.jpg"></image></swiper-item>
  <swiper-item><image src="/static/uploads/slide_4.jpg"></image></swiper-item>
</swiper>

swiper {
  width: 750rpx;
  height: 320rpx;
}
swiper image {
  width: 750rpx;
  height: 320rpx;
}

五、表单组件

1、input

基本与html的input输入框相同,通过password属性设置密码样式。

更多属性参考input官方文档

html 复制代码
  <view class="form-field">
    <label for="">姓名:</label>
    <view class="field">
      <input type="text" placeholder="请输入姓名"/>
    </view>
  </view>
  <view class="form-field">
    <label for="">密码:</label>
    <view class="field">
      <input type="text" password placeholder="请输入密码"/>
    </view>
  </view>

input的type设置为nickname,可快捷使用微信昵称。

html 复制代码
<input type="nickname" placeholder="请输入姓名"/></view>

若本地调试不显示微信昵称框,查看本地调试库版本,选择大于nickname的版本。

2、 单选框

与html的radio基本相同;

不同情况是:在有多个选项,但只能选择一个的时候,要用radio-group包裹住radio。

更多属性参考radio官方文档radio-group官方文档

html 复制代码
  <view class="form-field">
    <label for="">性别:</label>
    <view class="field">
      <radio-group bindchange="changeRadio">
        <label><radio value="1"/>男  </label>
        <label><radio value="0"/>女  </label>
      </radio-group>
    </view>
  </view>
javascript 复制代码
Page({
  changeRadio(e) {
    console.log(e.detail.value)
  }
})

3、复选框

复选框同单选框。

更多属性参考checkbox官方文档checkbox-group官方文档

html 复制代码
  <view class="form-field">
    <label for="">爱好:</label>
    <view class="field">
      <checkbox-group bindchange="changeCheckBox">
        <label><checkbox value="1"/>旅游  </label>
        <label><checkbox value="2"/>阅读  </label>
        <label><checkbox value="3"/>听歌  </label>
      </checkbox-group>
    </view>
  </view>
javascript 复制代码
Page({
  changeCheckBox(e) {
    console.log(e.detail.value)
  }
})

4、picker--省市区

通过设置picker的mode属性为region,即可使用省市区选择器。

注意:使用时,必须给picker中设置值,否则无法显示,也不能点击。

需要通过bindchange更新页面的数据值。

更多属性参考picker官方文档

html 复制代码
  <view class="form-field">
    <label for="">籍贯:</label>
    <view class="field">
      <picker mode="region" bindchange="changeRegion">
        {{ regionText || '请选择省市区'}}
      </picker>
    </view>
  </view>
javascript 复制代码
Page({
  data: {
    regionText: '请选择省市区'
  },
  changeRegion(e) {
    const text = e.detail.value.join(' ')
    this.setData({
      regionText: text
    })
  }
})

5、picker--日期选择

通过设置picker的mode属性为region,即可使用省市区选择器。

更多属性参考picker官方文档

html 复制代码
  <view class="form-field">
    <label for="">生日:</label>
    <view class="field">
      <picker mode="date" start="1960-01-01" bindchange="changeDate">
        {{dateText || '请选择生日'}}
      </picker>
    </view>
  </view>
javascript 复制代码
Page({
  data: {
    dateText: '请选择生日'
  },
  changeDate(e) {
    this.setData({
      dateText: e.detail.value
    })
  }
})

相关推荐
0思必得06 小时前
[Web自动化] Selenium处理动态网页
前端·爬虫·python·selenium·自动化
东东5166 小时前
智能社区管理系统的设计与实现ssm+vue
前端·javascript·vue.js·毕业设计·毕设
catino6 小时前
图片、文件的预览
前端·javascript
layman05288 小时前
webpack5 css-loader:从基础到原理
前端·css·webpack
半桔8 小时前
【前端小站】CSS 样式美学:从基础语法到界面精筑的实战宝典
前端·css·html
AI老李8 小时前
PostCSS完全指南:功能/配置/插件/SourceMap/AST/插件开发/自定义语法
前端·javascript·postcss
_OP_CHEN8 小时前
【前端开发之CSS】(一)初识 CSS:网页化妆术的终极指南,新手也能轻松拿捏页面美化!
前端·css·html·网页开发·样式表·界面美化
啊哈一半醒8 小时前
CSS 主流布局
前端·css·css布局·标准流 浮动 定位·flex grid 响应式布局
PHP武器库9 小时前
ULUI:不止于按钮和菜单,一个专注于“业务组件”的纯 CSS 框架
前端·css
电商API_180079052479 小时前
第三方淘宝商品详情 API 全维度调用指南:从技术对接到生产落地
java·大数据·前端·数据库·人工智能·网络爬虫