04 小程序常用组件-view text rich-text icon swiger

1.小程序常用组件

主要包含view  text rich-text image navigator icon swiger radio checkbox等

1.1. view标签组件

view代替原来的html中的div标签

1.2 text标签组件

  文本标签,只能嵌套text标签,且只有这个标签的文字可以复制,可以对空格 回车进行编码

属性名            类型        默认值         说明

selectable   boolean     false      文本是否可选  单单加属性名也是可以的

decode       boolean     false         是否解码

示例

<text selectable='false'>

  我爱你中国

</text>

在某些情况下,回车空格字符需要decode进行解码识别,也

就是view标签中不加decode属性 会显示&nbsp;

<text selectable='false' decode>

  我爱你中国

  &nbsp;

  123                                   

</text>

显示为:

<text selectable='false' decode>

  我爱你中国

                  此处显示空格,否则显示为&nbsp;

  123                                   

</text>

decode可以解析的有 &nbsp; &lt; &gt; &amp; &apos; &ensp; &emsp;

1.3 image

图片标签指的是image组件,默认宽度是320rpx,高度是240rpx,但是支持懒加载:

1602983228(1)

lazd-load会自己判断,当图片出现在视口上下三屏高度之内的时候,自己才开始加载图片

其中mode有效值:13中模式其中4中是缩放模式,9种是裁剪模式:

mode 的合法值

值                        说明

scaleToFill  缩放模式,不保持纵横比缩放图片,使图片的宽高完全拉伸至填满 image 元素

aspectFit    缩放模式,保持纵横比缩放图片,使图片的长边能完全显示出来。也就是说,可以完整地将图片显示出来。

aspectFill    缩放模式,保持纵横比缩放图片,只保证图片的短边能完全显示出来。也就是说,图片通常只在水平或垂直方向是完整的,另一个方向将会发生截取。

widthFix    缩放模式,宽度不变,高度自动变化,保持原图宽高比不变,常用

heightFix   缩放模式,高度不变,宽度自动变化,保持原图宽高比不变

top   裁剪模式,不缩放图片,只显示图片的顶部区域 

bottom   裁剪模式,不缩放图片,只显示图片的底部区域 ,

                类似以前htm里面的backgound-position

center   裁剪模式,不缩放图片,只显示图片的中间区域

left   裁剪模式,不缩放图片,只显示图片的左边区域

right   裁剪模式,不缩放图片,只显示图片的右边区域

top left   裁剪模式,不缩放图片,只显示图片的左上边区域

top right    裁剪模式,不缩放图片,只显示图片的右上边区域

bottom left   裁剪模式,不缩放图片,只显示图片的左下边区域

bottom right   裁剪模式,不缩放图片,只显示图片的右下边区域


1.4 swiper(轮播图组件)等比例 计算swiper的高度

swiper组件使用需要配合swiper-item一起使用,

可以理解为:

  •     外层 swiper包裹
  •     内层 swiper-item是轮播项,swiper-item和view一样,宽是一整行,高由内容撑开

swiper默认宽度是100%,默认高度是150rpx,

而image是默认320*240

我们需要找出原图的高度和宽度来,其中1vm相当于视窗的1%

wxml文件内容:

<swiper>

<swiper-item><image mode="widthFix"src="https://aecpm.alicdn.com/simba/img/TB1JNHwKFXXXXafXVXXSutbFXXX.jpg"/></swiper-item>

<swiper-item><image mode="widthFix"src="https://aecpm.alicdn.com/simba/img/TB1JNHwKFXXXXafXVXXSutbFXXX.jpg"/></swiper-item>

<swiper-item><image mode="widthFix" src="https://aecpm.alicdn.com/simba/img/TB1JNHwKFXXXXafXVXXSutbFXXX.jpg"/></swiper-item>

</swiper>

wxss文件内容

swiper{

100%;

height: calc(100vm*280/520);

}

1603002178(1)

轮播得属性:

1603003579(1)

1603004181(1)

1.5 navigator 导航组件,类似于超链接标签<a>,但有很大不同,比如它会换行,理解为相当于块级元素,可以直接加宽度和高度


1603004306(1)

image

1.6 rich-text 文本标签 富文本标签可以将字符串解析对应标签,类似于vue中 v-html功能

1603350704(1)

wxml写入:

<!--pages/demo12/demo12.wxml-->

<!--rich -text 富文本标签

   1. rich-text富文本标签主要通过nodes属性nodes="{{变量}}"来实现

     1.1. 接受标签字符串

     1.2. 接受对象数组

-->

<rich-text nodes="{{html(标签字符串)}}"> </rich-text>

<rich-text nodes="{{html2(接受对象数组)}}"> </rich-text>

js文件中写入:

  data: {

    html:'<div class="sc-bxivhb ALWfo" data-spm-anchor-id="a215s.7406091.0.i1.3cc36770EsZVhx"><div class="sc-ifAKCX iLINIY"><a class="sc-EHOje jXFKFG" href="https://www.tmall.com/wow/z/heybox/heyboxrax/heybox?utparam=%7B%22ranger_buckets_native%22%3A%22tsp2584_31920%22%7D&amp;spm=a2141.1.iconsv5.1&amp;scm=1007.home_icon.tmallxp.d&amp;wh_biz=tm&amp;disableNav=YES"><img class="sc-bZQynM iEnsRn" src="https://gw.alicdn.com/tfs/TB1OIxTcLc3T1VjSZLeXXbZsVXa-183-144.png?getAvatar=1"><p class="sc-gzVnrw hKaypx">天猫新品</p></a><a class="sc-EHOje hrPgER" href="https=%7B%22ranger_buckets_native%22%3A%22tsp2584_31920%22%7D&amp;spm=a2141.1.iconsv5.18&amp;scm=1007.home_icon.tuhuo.d&amp;_ariver_appid=17570832"><img class="sc-bZQynM iEnsRn" src="https://gw.alicdn.com/tfs/TB11tFkr7L0gK0jSZFxXXXWHVXa-183-144.png?getAvatar=1"><p class="sc-gzVnrw hKaypx">土货鲜食</p></a></div></div>',

    html2:[

{name:"div",

    attars:{

      class:"my_div",

      style:"color:red;"

},

    children:[

{

        name:'p',

        attars:{},

        children:[{

          type:"text",

          text:"hello"}

        ]

}

    ]

},

    ]

},

1.7 button标签

      button标签在小程序功能变得非常强大,我们按样色 样式和功能几方面进行学习:

1.7.1button标签的颜色和样式:

image

其中size的合法值:default  默认大小(居中显示)

                             mini:小尺寸(居左显示)

image

其中 type属性是支持颜色的  primary(银色)  绿地银色字

                                            default(白色)   灰底绿字

                                          warn(红色)        灰底红字

image

其中 plain是指字体背景是否为镂空,相当于底色全部为白色,

                                    边框仍然存在,边框与字体颜色一致

image

其中loading表示是否在名称前面出现loading转圈图标

image

1.7.2button标签的开放能力:

button标签的开放能力指的是:

image

C1W(C9J7V@C39V]ZT67$`{K

button中open-type的contact的实现流程:

1.将小程序的appid由测试号改为自己的appid

2.登录微信小程序官网,添加客服-微信

3.为了方便颜色,准备两个账户  平台用户和客户微信

wxml文件中写入:

<button open-type="contact">contact按钮</button>

<button open-type="share">share按钮</button>

<button open-type="getPhoneNumber" bindgetphonenumber="getPhoneNumber">getPhoneNumber按钮</button>

<button bindgetuserinfo="getUserInfo" open-type="getUserInfo">getUserInfo按钮</button>

<button open-type="launchApp">launchApp按钮 小程序打开app</button>

<button open-type="openSetting">openSetting按钮</button>

<button open-type="feedback">feedback按钮</button>

js文件中写入:

getPhoneNumber(e){

console.log(e)

},

getUserInfo(e){

console.log(e)

}

1.8 icon标签 字体标签,小程序已经封装好了一些字体图标供我们使用

属性      类型          默认值      是否必填    

type      string                          是              icon的类型,如success   warn wating cancel

size      number/string  23      否                icon的大小

color    string                          否                 icon的颜色,与css一致

<!--

  icon标签使用

-->

<icon type="success" size="23" color="red"></icon>

<icon type="success" size="50"></icon>

<icon type="success"></icon>

image

1.9 radio 单选标签

          小程序中单选框有很大不同,小程序单选框选中颜色-color和小程序单选框单击事件需要radio-group结合使用。

image

js中写法:

  data: {

    gender:" "

},

handlechange(e){

// console.log(e)

// 1.获取单选框的值  let 代表局部变量且是惟一的,不能重新定义

let gender=e.detail.value;

// 把值赋值给date中的数据

this.setData({

      gender:gender

})

},




1.10.checkbox 复选标签

         checkbox标签与radio标签很类似,都需要color改颜色,也需要与父元素 checkbox-group组合使用




image

image

js的文件写法:

  data: {

    list:[{

      id:0,

      name:"苹果",

      value:"pinguo"

},

{

    id:1,

    name:"bannane",

    value:"xiangjiao"

},

{

    id:2,

    name:"yeloo",

    value:"putao"

}

  ],

  checkedlist:[

  ]

},

//复选框的选中事件

handleItemChange(e){

//console.log(e)

//获取复选框的值

const checkedlist=e.detail.value;

// 进行复选框赋值

this.setData({

checkedlist

})

},








原文地址:https://www.cnblogs.com/rango0550/p/13830697.html