首页 > 编程语言 >微信小程序学习(第四章总结)

微信小程序学习(第四章总结)

时间:2024-03-18 20:29:35浏览次数:26  
标签:总结 微信 var item 组件 页面 scroll 第四章 view

页面组件

4.1组件的定义及属性

        组件是页面视图层(WXML)的基本组成单元,组件组合可以构建功能强大的页面结构。小程序框架为开发者提供了容器视图、基础内容、表单、导航、多媒体、地图、画布开放能力等8类(30多个)基础组件。

        每一个组件都由一对标签组成,有开始标签和结束标签,内容放置在开始标签和结束标签之间,内容也可以是组件。组件的语法格式如下:

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

        组件通过属性来进一步细化。不同的组件可以有不同的属性,但它们也有一些共用属性,如id、class、style、hidden、data-*、bind */catch *等  

        1.id 组件的唯一表示,保持整个页面唯一,不常用

        2. class 组件的样式类,对应 WXSS 中定义的样式

        3.  style 组件的内联样式,可以动态设置内联样式

        4. hidden 组件是否显示,所有组件默认显示

        5. data-*自定义属性,组件触发事件时,会发送给事件处理函数。事件处理函数可
以通过传人参数对象的 currentTarget,dataset 方式来获取自定义属性的值

        6. bind*/catch* 组件的事件,绑定逻辑层相关事件处理函数

4.2 容器视图组件

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

4.2.1 View

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

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

<!-- 4.2.1 wxml文件-->
<view style="text-align: center;">默认flex布局</view>
<view style="display: flex;">
  <view style="border: 1px solid #f00;flex-grow: 1;">1</view>
  <view style="border: 1px solid #f00;flex-grow: 1;">2</view>
  <view style="border: 1px solid #f00;flex-grow: 1;">3</view>
</view>
<view style="text-align: center;">上下混合布局</view>
<view style="display: flex;flex-direction: column;">
  <view style="border: 1px solid #f00;">1</view>
  <view style="display: flex;">
    <view style="border: 1px solid #f00;flex-grow: 1;">2</view>
    <view style="border: 1px solid #f00;flex-grow: 1;">3</view>
  </view>
</view>
<view style="text-align: center;">左右混合布局</view>
<view style="display: flex;">
  <view style="border: 1px solid #f00;flex-grow: 1;">1</view>
  <view style="border: 1px solid #f00;flex-grow: 1;flex-direction: column;">
    <view style="border: 1px solid #f00;flex-grow: 1;">2</view>
    <view style="border: 1px solid #f00;flex-grow: 2;">3</view>
  </view>
</view>

运行效果:

4.2.2 Scroll-View

通过设置seroll-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 组件。这样做,能通过单击顶部状态栏回到页面顶部。

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

<!-- 4.2.2 wxml文件-->
<view class="container" style="padding: 0rpx;">
<!-- 垂直滚动,这里必须设置高度 -->
  <scroll-view scroll-top="{{scrollTop}}"scroll-y="true" style="height: {{scrollHeight}}px;" class="list" bind-scrolltolower="bindDownLoad" bindscrolltoupper="topLoad" bindscroll="scroll">
    <view class="item" wx:for="{{list}}">
      <image class="img" src="{{item.pic_url}}"></image>
      <view class="text">
       <text class="title">{{item.name}}</text>
       <text class="description">{{item.short_description}}</text>
      </view>
    </view>
  </scroll-view>
  <view class="body-view">
    <losding hidden="{{hidden}}" bindchange="loadingChange">
      加载中……
    </losding>
  </view>
</view>
// 4.2.2 js文件
var url = "http://www.imooc.com/course/ajaxlist";
var page = 0;
var page_size = 5;
var sort = "last";
var is_easy = 0;
var lang_id = 0;
var pos_id = 0;
var unlearn = 0;
//请求数据
var losdMore = function(that){
  that.setData({
    hidden:false
  });
  wx.request({
    url: 'url',
    data:{
      page:page,
      page_size:page_size,
      sort:sort,
      is_easy:is_easy,
      lang_id:lang_id,
      pos_id:pos_id,
      unlearn:unlearn
    },
    success:function(res){
      var list = that.data.list;
      for(var i=0;i<res.data.list.length;i++){
        list.push(res.data.list[i]);
      }
      that.setData({
        list:list
      });
      page++;
      that.setData({
        hidden:true
      });
    }
  });
}
Page({
 data:{
   hidden:true,
   list:[],
   scrollTop:0,
   scrollHeigt:0
 },
 onl oad:function(){
   //这里要注意,微信的scroll-view必须设置高度才能监听滚动事件,所以需要在页面的onLoad事件中为scroll-view的高度赋值
   var that = this;
   wx.getSystemInfo({
     success:function(res){
       that.setData({
         scrollHeigt:res.windowHeight
       });
     }
   });
   loadMore(that);
 },
 //页面滑动到底部
 bindDownLoad:function(){
   var that = this;
   loadMore(that);
   console.log("lower");
 },
 scroll:function(event){
   //该方法绑定了页面滚动时的事件,这里记录了当前的position.y的值,为了在请求数据后把页面定位到这里
   this.setData({
     scrollTop:event.detail.scrollTop
   });
 },
 topLoad:function(event){
   //该方法绑定了页面滑动到顶部的时间,然后做页面上拉刷新
   page = 0;
   this.setData({
     list:[],
     scrollTop:0
   });
   loadMore(this);
   console.log("lower");
 }
}) 
/* 4.2.2 wxss文件*/
.userinfo{
  display: flex;
  flex-direction: column;
  align-items: center;
}
.userinfo-avatar{
  width: 128rpx;
  height: 128rpx;
  margin: 20rpx;
  border-radius: 50%;
}
.userinfo-nickname{
  color:#aaa;
}
.usermotto{
  margin-top: 200px;
}
scroll-view{
  width: 100%;
}
.item{
  width: 90%;
  height: 300rpx;
  margin: 20rpx auto;
  background: brown;
  overflow: hidden;
}
.item.img{
  width: 430rpx;
  margin-right: 20rpx;
  float: left;
}
.title{
  font-size: 30rpx;
  display: block;
  margin: 30rpx auto;
}
.description{
  font-size: 26rpx;
  line-height: 15rpx;
}

4.2.3 Swiper

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

4.3 基础内容组件

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

4.3.1 icon

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

示例代码如下:

<!-- 4.3.1 wxml文件 -->
<view>icon类型:
  <block wx:for="{{iconType}}">
    <icon type="{{item}}"/>{{item}}
  </block>
</view>
<view>icon大小:
  <block wx:for="{{iconSize}}">
    <icon type="success" size="{{item}}"/>{{item}}
  </block>
</view>
<view>icon颜色:
  <block wx:for="{{iconColor}}">
    <icon type="success" size="30" color="{{item}}"/>{{item}}
  </block>
</view>
//  4.3.1 wxss文件
 data:{
  iconType:["success","success_no_circle","info","warn","waiting","cancel","download","search","clear"],
  iconSize:[10,20,30,40],
  iconColor:["#f00","#0f0","#00f"]
 }

运行效果:

4.3.2 text

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

示例代码如下:

<!-- 4.3.2 wxml文件 -->
<block wx:for="{{x}}" wx:for-item="x">
  <view class="aa">
    <block wx:for = "{{1-x}}" wx:for-item="x">
      <text decode = "{{true}}" space="{{true}}">
        &nbsp;
      </text>
    </block>
    <block wx:for="{{y}}" wx:for-item="y">
      <block wx:if="{{y<=2*x-1}}">
       <text>*</text>
      </block>
    </block>
  </view>
</block>
<block wx:for="{{x}}" wx:for-item="x">
  <view class="aa">
    <block wx:for="{{-5+x}}" wx:for-item="x">
      <text decode="{{true}}" space="{{true}}">
        &nbsp;
      </text>
    </block>
    <block wx:for="{{y}}" wx:for-item="y">
      <block wx:if="{{y<=11-2*x}}">
       <text>*</text>
      </block>
    </block>
  </view>
</block>
//  4.3.2 wxss文件
data:{
  x:[1,2,3,4,5],
  y:[1,2,3,4,5,6,7,8,9]
}
/* 4.3.2 wxss文件 */
.aa{
  text-align: center;
}

运行效果;

4.3.3 progress

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

示例代码如下:

<!-- 4.3.3 wxml文件 -->
<view>显示百分比</view>
<progress percent="80" show-info="80"></progress>
<view>改变宽度</view>
<progress percent="50" stroke-width="2"></progress>
<view>自动显示进度条</view>
<progress percent="80" active=""></progress>

运行效果:

标签:总结,微信,var,item,组件,页面,scroll,第四章,view
From: https://blog.csdn.net/weixin_74181724/article/details/136791532

相关文章

  • 服务器相关知识点总结
    一、服务器概述1.服务器的定义服务器是计算机的一种,是网络中为客户端计算机提供各种服务的高性能的计算机。服务器在网络操作系统的控制下,将与其连接的硬盘、磁带、打印机以及昂贵的专用通讯设备提供给网络上的客户站点共享,也能为网络用户提供集中计算、信息发布及数据管理......
  • 【Java】梳理总结:类与对象|面向对象三大特征|接口 抽象类
    目录一、类与对象1、面向对象和面向过程面向过程:侧重的是过程面向对象:侧重的是对象2、类与对象1、造车2、面向对象的世界里:3、写代码:3、方法/函数重载4、构造方法(构造方法的重载)1、无参构造2、有参构造3、构造方法也是方法,也可以进行重载5、this关键字6、局部......
  • 第三章页面布局总结
    目录一.盒子模型 二.块级元素与行内元素1.块级元素​ 2.行内元素​3.行内块元素三.浮动与定位 1.元素浮动与清除​2.元素定位四.flex布局 1.容器属性(1)display(2)flex-direction(3)flex-wrap(4)flex-flow(5)justify-content(6).align-items(7).align-con......
  • uniapp微信小程序随机生成canvas-id报错?
    uniapp微信小程序随机生成canvas-id报错?文章目录uniapp微信小程序随机生成canvas-id报错?效果图遇到问题解决场景:子组件,在mounted绘制canvas;App、H5端正常显示,微信小程序报错;效果图遇到问题随机生成canvas-id方式,控制台报错【:canvas-idattributeisun......
  • 监控微信的软件,什么软件可以监控微信聊天记录
    有的老板会在后台发文:“能监控聊天记录么?”“聊天记录删除了能找回么”“监控聊天记录的安装包有吗”......可见很多老板对员工的工作时的工作状态都不太放心。针对监控微信这个事情,我们应该理性分析看待。首先,需要明确的是,监控员工工作微信是一种有争议的做法。尽管......
  • 代码随想录算法训练营第23天|669. 修剪二叉搜索树|108.将有序数组转换为二叉搜索树|53
    代码随想录算法训练营第23天|669.修剪二叉搜索树|108.将有序数组转换为二叉搜索树|538.把二叉搜索树转换为累加树|总结篇669.修剪二叉搜索树这道题目比较难,比添加增加和删除节点难的多,建议先看视频理解。题目链接/文章讲解:https://programmercarl.com/0669.%E4%BF%A......
  • String字符串的常见方法总结
         String字符串类           在Java中,String 类是表示字符串的不可变对象。这意味着一旦创建了一个 String 对象,就不能修改它的内容。String是一个引用类型,它本身也是一个class类。publicfinalclassStringimplementsjava.io.Serializable,Co......
  • 微信小程序蓝牙红外发送ArrayBuffer合并字节数组
    微信小程序中与设备进行通讯时,经常需要在前面加一些字节,或者处理分包的时候需要加一些字节过去,如果在后端很好操作,但是在小程序中由于ArrayBuffer不支持直接操作,非常不方便最近一个与设备通讯中,需要添加前导字符,百度了一圈没有好的方案,东拼西凑了才算是搞出来了 functioncop......
  • 第四章、nodejs高级
    目录十六、知识点补充1、环境变量十六、知识点补充1、环境变量//1、nodejs自带模块化功能,一个js文件就是一个模块console.log(this===global)//false//2、console.time('start')和console.timeEnd('start')记录时间间隔console.time('start')letnum=0for(leti......
  • C语言指针完整总结!!!
    1.指针介绍1.简介:C语⾔中给地址起了新的名字叫:指针。一个内存单元是一字节内存单元的编号==地址==指针在x86的环境中,一共有32根地址总线,即32个比特位。一个字节有八个比特位,而⼀个比特位可以存储⼀个2进制的位1或者0,因此32根地址线,就能表示2^32种含义,每⼀种含义都......