• 微信小程序4~6章总结


    目录

    第四章  页面组件总结

     4.1 组件的定义及属性

    4.2 容器视图组件

    4.2.1 view

    4.2.2  scroll-view

    4.2.3 swiper

    4.3 基础内容组件

    4.3.1 icon

    ​编辑 4.3.2  text 

    4.3.3 progress

    ​编辑 4.4 表单组件

    4.4.1 button

     4.4.2 radio

    4.4.3 checkbox

    4.4.4 switch

    ​编辑 4.4.5 slider

    ​编辑 4.4.6 picker

    4.4.7 picker-view 

    4.4.8 input

    ​编辑 4.4.9 textarea

    ​编辑 4.4.10  laber

     4.4.11 form

    ​编辑 4.5 多媒体组件

    4.5.1 image

    ​编辑 4.5.2 audio

    4.5.3 video

    4.5.4 camera

    4.6 其他组件

    4.6.1 map

    4.6.2 canvas

    第五章   即速应用

    5.1  即速应用概述

    5.1.1 即速应用的优势

    5.1.2 即速应用界面介绍

    5.2 即速应用组件

    5.2.1 基础组件

    ​编辑​

    5.2.2 应用组件 

        5.3 即速应用后台管理

    5.4 打包上传 

    第六章 API应用总结

    6.1 网络API

    6.1.1 发起网络请求

    ​编辑​ 6.1.2 上传文件

     6.1.3 下载文件

    6.2 多媒体API

    6.2.1 图片API

     6.2.2 录音API

    6.2.3 音频播放控制API

    6.2.4 音乐播放控制API

    ​编辑​

     6.3 文件API

    6.4 本地数据缓存API

    6.4.1 保存数据

    6.4.2 获取数据

    6.4.3 删除数据

    6.4.4 清空数据

    6.5 位置信息API

    6.5.1 获取位置信息

     6.5.2 选择位置信息

    6.6设备相关API

    6.6.1 获取系统信息

     6.6.2 网络状态

    6.6.3 拨打电话

    6.6.4 扫描二维码


    第四章  页面组件总结

     4.1 组件的定义及属性

    概念:组件是页面视图层(WXML)的基本组成单元,组件组合可以构建功能强大的页面结构。小程序框架为开发者提供了容器视图、基础内容、表单、导航、多媒体、地图、画布、开放能力等8类(30多个)基础组件。
    每一个组件都由一对标签组成,有开始标签和结束标签,内容放置在开始标签和结束标签之间,内容也可以是组件。组件的语法格式如下:

    <标签名  属性名=“属性值”>内容...</标签名>

    组件通过属性来进一步细化。不同的组件可以有不同的属性,但它们也有一些共用属性,如id、class、style、hidden、data-∗、bind∗/catch∗等。
    ■ id组件的唯一表示,保持整个页面唯一,不常用。
    ■ class组件的样式类,对应WXSS中定义的样式。
    ■ style组件的内联样式,可以动态设置内联样式。
    ■ hidden组件是否显示,所有组件默认显示。
    ■ data-∗ 自定义属性,组件触发事件时,会发送给事件处理函数。事件处理函数可以通过传入参数对象的currentTarget. dataset方式来获取自定义属性的值。
    ■ bind∗/catch∗ 组件的事件,绑定逻辑层相关事件处理函数。

    4.2 容器视图组件

    概念:容器视图组件是能容纳其他组件的组件,是构建小程序页面布局的基础组件,主要包括view、scroll-view和swiper组件。


    4.2.1 view


    概念:view组件是块级组件,没有特殊功能,主要用于布局展示,相当于HTML中的div,是布局中最基本的用户界面(User Interface, UI)组件,通过设置view的CSS属性可以实现各种复杂的布局。view组件的特有属性如表4-1所示。

                                                           表4-1 view组件的特有属性

    通过组件实现页面布局示例代码如下:

     在index.wxml中写入代码:

    1. <view style="text-align:center">默认flex布局</view>
    2. <view style="display:flex">
    3. <view style ="border:2px solid #f00;flex-grow:1">1 </view>
    4. <view style ="border:2px solid #f00;flex-grow:1">2 </view>
    5. <view style ="border:2px solid #f00;flex-grow:1">3 </view>
    6. </view>
    7. <view style="text-align:center">上下混合布局</view>
    8. <view style="display:flex;flex-direction:column">
    9. <view style="border:2px solid #f00;">1 </view>
    10. <view style="display:flex">
    11. <view style="border:2px solid #f00;flex-grow:1">
    12. 2 </view>
    13. <view style="border:2px solid #f00;flex-grow:2">3</view>
    14. </view>
    15. </view>
    16. <view style="text-align:center">左右混合布局</view>
    17. <view style="display:flex">
    18. <view style ="border:2px solid #f00;flex-grow:1">1 </view>
    19. <view style ="display:flex;flex-direction:column;flex-grow:1">
    20. <view style ="border:2px solid #f00;flex-grow:1">2</view>
    21. <view style ="border:2px solid #f00;flex-grow:2">3</view>
    22. </view>
    23. </view>

    在index.json写入代码:

    1. {
    2. "navigationBarBackgroundColor": "#000000",
    3. "navigationBarTitleText": "趋势(苏冷)",
    4. "navigationBarTextStyle": "white",
    5. "backgroundTextStyle": "dark"
    6. }

    运行结果:

    4.2.2  scroll-view

    通过设置scroll-view组件的相关属性可以实现滚动视图的功能,其属性如表4-2所示。

                                                  表4-2 scroll-view组件的相关属性

    【注意】
    (1)在使用竖向滚动时,如果需要给scroll -view组件设置一个固定高度,可以通过WXSS设置height来完成。
    (2)请勿在scroll-view组件中使用textarea、map、canvas、video组件。
    (3)scroll-into-view属性的优先级高于scroll-top。
    (4)由于在使用scroll-view组件时会阻止页面回弹,所以在scroll-view组件滚动时无法触发onPullDownRefresh。
    (5)如果要实现页面下拉刷新,请使用页面的滚动,而不是设置scroll-view组件。这样做,能通过单击顶部状态栏回到页面顶部。 

     通过scroll-view组件可以实现下拉刷新和上拉加载更多,代码如下:

    在index.wxml中写入代码:

    1. <view class="container"style="padding:0rpx">
    2. <!--垂直滚动,这里必须设置高度-->
    3. <scroll-view scroll-top="|iscrollTop|}" scroll-y="true"
    4. style="height:{{scrollHeight}}px;"class ="list" bind-scrolltolower="bindDownLoad"
    5. bindscrolltoupper="topLoad" bindscroll="scroll">
    6. <view class="item"wx:for="{{list}}">
    7. <image class ="img"src="{{item.pic_url}}"></image><view class="text">
    8. <text class="title">{{item.name }}</text>
    9. <text class="description">{{item.short_description}}</text>
    10. </view>
    11. </view >
    12. </scroll-view >
    13. <view class="body-view">
    14. <loading hidden ="{{hidden}}"bindchange = "loadingChange" >加载中...</loading></view>
    15. </view>

    在index.wxss中写入代码:

    1. .userinfo{
    2. display:flex;
    3. flex-direction:column;
    4. align-items:center;
    5. }
    6. .userinfo-avatar{
    7. width:128rpx;
    8. height :128rpx;
    9. margin:20rpx;
    10. border-radius:50%;
    11. }
    12. .userinfo-nickname{
    13. color: #aaaaaa;
    14. }
    15. .usermotto{
    16. margin-top:200px;
    17. }
    18. sCroll-view{
    19. width: 100%;
    20. }
    21. .item{
    22. width:90%;
    23. height:300rpx;
    24. margin:20rpxauto;
    25. background:brown;
    26. overflow:hidden;
    27. }
    28. .item.img
    29. {
    30. width:430rpx;
    31. margin-right:20rpx;
    32. float:left;
    33. }
    34. .title{
    35. font-size:30rpx;
    36. display:block;
    37. margin:30rpxauto;
    38. }
    39. .description{
    40. font-size:26rpx;
    41. line-height:15rpx;
    42. }

    在index.js中写入代码:

    1. // index.js
    2. var url="http://www.imooc.com/course/ajaxlist";
    3. var page =0;
    4. var page_size=5;
    5. var sort ="last";
    6. var is_easy =0;
    7. var lange_id =0;
    8. var pos_id=0;
    9. var unlearn =0;
    10. //请求数据
    11. var loadMore =function(that){
    12. that.setData({
    13. hidden:false
    14. });
    15. wx.request({
    16. url:url,
    17. data: {
    18. page:page,
    19. page_size:page_size,
    20. sort:sort,
    21. is_easy:is_easy,
    22. lange_id:lange_id,
    23. pos_id:pos_id,
    24. unlearn:unlearn
    25. },
    26. success:function(res){
    27. var list =that.data.list;
    28. for(vari =0;i<res.data.list.length;i++){
    29. list.push(res.data.listi);
    30. }that.setData({
    31. list:list
    32. });
    33. page ++;
    34. that.setData({
    35. hidden:true,
    36. });
    37. }
    38. });
    39. }
    40. Page({
    41. data:{
    42. hidden:true,
    43. list:[],
    44. scrollTop:0,
    45. scrollHeight:0
    46. },
    47. onLoad:function(){
    48. //这里要注意,微信的scro11-view必须设置高度才能监听滚动事件,所以需要在页面的onLoad 事件中为scroll-view的高度赋值
    49. var that =this;
    50. wx.getSystemInfo({
    51. success:function(res){
    52. that.setData({scrollHeight:res.windowHeight}
    53. );
    54. }
    55. });
    56. loadMore(that);
    57. },
    58. //页面滑动到底部
    59. bindDownLoad:function(){
    60. var that =this;
    61. loadMore(that);
    62. console.log("lower");
    63. },
    64. scroll:function(event){
    65. //该方法绑定了页面滚动时的事件,这里记录了当前的position.y的值,为了在请求数据后把页面定位到这里
    66. this.setData({
    67. scrollTop:event.detail.scrollTop});
    68. },
    69. topLoad:function(event){
    70. Page = 0;
    71. this.setData({
    72. list:[],
    73. scrollTop:0
    74. });
    75. loadMore(this);
    76. console.log("lower");
    77. }
    78. })

    运行结果:

    4.2.3 swiper


    概念swiper组件可以实现轮播图、图片预览、滑动页面等效果。一个完整的swiper组件由两个标签组成,它们不能单独使用。中只能放置一个或多个,若放置其他组件则会被删除;内部可以放置任何组件,默认宽高自动设置为100%。swiper组件的属性如表4-3所示。

                                                            图4-3    swiper组件的属性 

    组件为滑块项组件,仅可以被放置在组件中,宽高尺寸默认按100%显示。
    设置swiper组件,可以实现轮播图效果,代码如下:

     在index.wxml中写入代码:

    1. <swiper indicator-dots='true' autoplay='true' interval ='5000' du-swiperration='1000'>
    2. <swiper-item >
    3. <image src="../images/yy (4).png" style="width:100%"></image>
    4. </swiper-item>
    5. <swiper-item>
    6. <image src="../images/yy .png" style="width:100%"></image>
    7. </swiper-item>
    8. <swiper-item>
    9. <image src ="../images/yy .png" style ="width:100%"></image>
    10. </swiper-item>
    11. </swiper>

    运行效果如下:

     滑动切换效果:

    4.3 基础内容组件


    概念:基础内容组件包括icon、text和progress,主要用于在视图页面中展示图标、文本和进度条等信息。


    4.3.1 icon


    概念:icon组件即图标组件,通常用于表示一种状态,如success、info、warn、waiting、cancel等。其属性如表4-4所示。

                                                            图4-4   icon组件属性

    示例代码如下:

    在index.wxml输入代码:

    1. <view> icon类型:
    2. <block wx:for="{{iconType}}">
    3. <icon type ="{{item}}"/>{{item}}
    4. </block>
    5. </view >
    6. <view >icon大小:
    7. <block wx:for="{{iconSize}}">
    8. <icon type = "success" size="{{item}}"/>{{item}}
    9. </block>
    10. </view>
    11. <view >icon颜色:
    12. <block wx:for="{{iconColor}}">
    13. <icon type = "success" size = "30" color="{{item}}"/>{{item}}
    14. </block >
    15. </view >

     在index.js输入代码:

    1. //icon.js
    2. //pages/icon/icon.js
    3. Page({
    4. data:{
    5. iconType:[ "success"," success_no_circle","info"," warn"," wait- ing","cancel","download","search","clear"],
    6. iconSize:[10,20,30,40],
    7. iconColor:['#f00','#0 f0','#00f']
    8. }
    9. })

      在index.json输入代码:

    1. {
    2. "navigationBarBackgroundColor": "#000000",
    3. "navigationBarTitleText": "趋势(苏冷)",
    4. "navigationBarTextStyle": "white",
    5. "backgroundTextStyle": "dark"
    6. }

    运行结果如下:

     4.3.2  text 

    概念:text组件用于展示内容,类似HTML中的, text组件中的内容支持长按选中,支持转义字符“\”,属于行内元素。text组件的属性如表4-5所示。

                                                    图4-5所示    text组件的属性

     示例代码如下:

    在index.wxml输入代码:

    1. <block wx:for="{{x}}" wx:for-item="x">
    2. <view class="aa">
    3. <block wx:for="{{25-x}}" wx:for-item="x">
    4. <text decode="{{true}}" space="{{true}}">&nbsp;</text>
    5. </block>
    6. <block wx:for="{{y}}" wx:for-item="y">
    7. <block wx:if="{{y<=2*x-1}}">
    8. <text>*</text>
    9. </block>
    10. </block>
    11. </view>
    12. </block>
    13. <block wx:for="{{x}}"wx:for-item="x">
    14. <view class="aa">
    15. <block wx:for="{{19+x}}" wx:for-item="x">
    16. <text decode="{{true}}" space="{{true}}">&nbsp;</text>
    17. </block>
    18. <block wx:for="{{y}}" wx:for-item="y">
    19. <block wx:if="{{y<=11-2*x}}">
    20. <text>*</text>
    21. </block>
    22. </block>
    23. </view>
    24. </block>

    在index.js输入代码:

    1. Page({
    2. data: {
    3. x:[1,2,3,4,5],
    4. y:[1,2,3,4,5,6,7,8,9]}
    5. })

    运行效果如下:

    4.3.3 progress


    概念:progress组件用于显示进度状态,如资源加载、用户资料完成度、媒体资源播放进度等。progress组件属于块级元素,其属性如表4-6所示。

                                                      图4-6    progress组件属性

    示例代码如下:

    在index.wxml中输入代码:

    1. <view>显示百分比</view>
    2. <progress percent ='80'show-info ='80'></progress>
    3. <view>改变宽度</view>
    4. <progress percent ='50'stroke -width ='2'></progress>
    5. <view>自动显示进度条</view>
    6. <progress percent='80' active></progress>

     在index.json输入代码:

    1. {
    2. "navigationBarBackgroundColor": "#000000",
    3. "navigationBarTitleText": "趋势(苏冷)",
    4. "navigationBarTextStyle": "white",
    5. "backgroundTextStyle": "dark"
    6. }

    运行结果:

     4.4 表单组件


    概念:表单组件的主要功能是收集用户信息,并将这些信息传递给后台服务器,实现小程序与用户之间的沟通。表单组件不仅可以放置在

    标签中使用,还可以作为单独组件和其他组件混合使用。

    4.4.1 button


    概念:button组件用来实现用户和应用之间的交互,同时按钮的颜色起引导作用。一般来说,在一个程序中一个按钮至少有3种状态:默认点击(default)、建议点击(primary)、谨慎点击(warn)。在构建项目时,应在合适的场景使用合适的按钮,当

  • 相关阅读:
    【算法|二分查找No.5】leetcode162. 寻找峰值 & AcWing 1611. 寻找峰值
    什么是Wi-Fi保护设置(WPS),以及如何使用它?这里有详细解释
    python基于django的宠物知识分享网站
    【菜鸟入门!】Matlab零基础快速入门教程
    内存函数介绍
    ArcGIS绘制地球
    开源 github flow的版本发布
    一文带你深入了解Linux IIO 子系统
    将Django项目部署到服务器
    MacOS下idea中Maven配置以及Maven替换国内阿里云镜像源
  • 原文地址:https://blog.csdn.net/m0_73490019/article/details/138144537