黑马程序员技术交流社区

标题: 【广州前端】微信小程序入门之路(三)之组件一 [打印本页]

作者: AMay    时间: 2018-9-13 15:19
标题: 【广州前端】微信小程序入门之路(三)之组件一
查看更多精彩前端资源


【前言】
         微信小程序的组件也挺多了,还是把官网的组件介绍地址先贴出来吧
         https://mp.weixin.qq.com/debug/wxadoc/dev/component/
【基本组件】
         这里先给大家介绍一些比较基础的组件,作为一个开胃小菜。作为入门,这里会把这些基础的组件与我们的html标签做一个类比。
常用布局标签
<view></view>                                  相当于    <div></div>
<text></text>                           相当于    <span></span>
<image></image>                   相当于    <img />
<navigator></navigator>                相当于    <a></a>
<block></block>                               区块标签,不会渲染到页面
注意:image组件默认宽度300px、高度225px,很多时候我们都不需要这个默认宽高,记得手动设置宽高
【其他组件】
1.     轮播图组件
[HTML] 纯文本查看 复制代码
<swiper indicator-dots="是否显示面板指示点" autoplay="是否自动切换" interval="自动切换时间间隔" duration="滑动动画时长">

    <swiper-item>

        <image src="图片路径1" width="375" height="150"/>

    </swiper-item>

    <swiper-item>

        <image src="图片路径2" width="375" height="150"/>

    </swiper-item>

</swiper>
效果图:
2.     form (表单)
wxml:表单里有输入框、滑动选择器、开关和提交表单重置表单按钮。
[HTML] 纯文本查看 复制代码
<form bindsubmit='formSubmit' bindreset='formReset'>

  <input name='input' placeholder='请输入内容'>{{inputText}}</input>

  <slider name='slider' value='{{sliderValue}}'></slider>

  <switch name='switch' checked='{{isChecked}}'></switch>

  <button form-type='submit'>提交表单</button>

  <button form-type='reset'>重置表单</button>

</form>
效果如图:
form的两个属性:
bindsubmit 表单提交时会携带 form 中的数据触发其绑定的函数
bindreset 表单重置时会触发 reset 事件,提交表单时,需要在表单组件中加上 name 来作为 key
js代码如下
[JavaScript] 纯文本查看 复制代码
Page({



  /**

   * 页面的初始数据

   */

  data: {

    inputText: '',

    sliderValue: 0,

    isChecked: false,

  },

  //表单提交

  formSubmit: function (event) {

    //打印日志

    console.log(event)

  },

  //表单重置

  formReset: function (event) {

    console.log(event)

  }

})
效果图:
如下图:可以看到input,slider,switch组件的name属性,被当做key提交
点击reset,可以看到表单中的组件状态被重置
3.     ActionSheet(底部弹出框)
先学习下bindtap属性,就是点击事件,当组件被点击时,会触发绑定的函数。
wxml代码:
简单介绍下:点击按钮时,action-sheet即底部弹出框显示,其中的action-sheet-item为弹出框的条目,最后一个条目为action-sheet-cancel,顾名思义,此条目用于取消操作,其外观会和其它条目不同,会触发action-sheet的bindchange事件(点击弹出框外面空白地方也会触发bindchange事件),点击每一个条目(包括取消)时,将action-sheet隐藏。
[HTML] 纯文本查看 复制代码
<button bindtap='showActionSheet'>showActionSheet</button>

<action-sheet hidden="{{actionSheetHidden}}" bindchange="actionSheetChange">

  <action-sheet-item bindtap="actionSheetItem" data-name="name1" data-value='我是第1条数据'>item1</action-sheet-item>

  <action-sheet-item bindtap="actionSheetItem" data-name="name2" data-value='我是第2条数据'>item2</action-sheet-item>

  <action-sheet-item bindtap="actionSheetItem" data-name="name3" data-value='我是第3条数据'>item3</action-sheet-item>

  <action-sheet-cancel bindtap="actionSheetItem" data-name="cancel" data-value='我是取消'>取消</action-sheet-cancel>

</action-sheet>
Js代码
[JavaScript] 纯文本查看 复制代码
Page({

  /**

   * 页面的初始数据

   */

  data: {

    actionSheetHidden: true,



  },

  //显示action-sheet

  showActionSheet: function () {

    this.setData({ actionSheetHidden: false })

  },

  //点击取消

  actionSheetChange: function () {

    console.log("actionSheetChange")

    this.setData({ actionSheetHidden: true })

  },

  //条目点击事件

  actionSheetItem: function (event) {

    console.log(event)

    this.setData({ actionSheetHidden: true })

  }

})
效果图:
1.     先点击按钮,让action-sheet显示
2.     点击item1,会触发actionSheetItem函数,看下actionSheetItem函数中打印的日志:
3.     可以看到条目1中携带的数据name和value传到了actionSheetItem的参数中,真实案例中就可以拿到被点击条目的数据,进行下一步的操作了
回到上一步,再看看点击取消会有什么不同吧
注意看,我们先打印出actionSheetChange日志,可以得出,当点击取消时,先被触发的时action-sheet的bindchange函数,然后才执行的取消条目的bindtap函数,同时可以也可以拿到取消条目所传递的数据,但取消一般是不怎么需要的。






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2