全栈开发工程师微信小程序-上(下)

icon

图标

success, success_no_circle, info, warn, waiting, cancel, download, search, clear
<view class="group">
<block wx:for="{{iconSize}}"><icon type="success" size="{{item}}" /></block>
</view> <view class="group">
<block wx:for="{{iconType}}"><icon type="{{item}}" size="40" /></block>
</view> <view class="group">
<block wx:for="{{iconColor}}">
<icon type="success" size="40" color="{{item}}" />
</block>
</view>
Page({
data: {
iconSize: [20, 30, 40, 50, 60, 70],
iconColor: [
'red', 'orange', 'yellow', 'green', 'rgb(0,255,255)', 'blue', 'purple'
],
iconType: [
'success', 'success_no_circle', 'info', 'warn', 'waiting', 'cancel', 'download', 'search', 'clear'
]
}
})
success
success_no_circle
success_circle info
// info_no_circle
info_circle warn
// warn_no_circle
// warn_circle waiting
// waiting_no_circle
waiting_circle cancel
// cancel_no_circle
// cancel_circle download
// download_no_circle
// download_circle search
clear

icon图标

type: icon类型
size: icon大小
color: icon颜色

text

文本

selectable 文本是否可选
space 显示连续空格
decode 是否解码
<view class="btn-area">
<view class="body-view">
<text>{{text}}</text>
<button bindtap="add">add line</button>
<button bindtap="remove">remove line</button>
</view>
</view>
const initData = 'this is first line\nthis is second line'
const extraLine = []
Page({
data: {
text: initData
},
add(e) {
extraLine.push('other line')
this.setData({
text: initData + '\n' + extraLine.join('\n')
})
},
remove(e) {
if (extraLine.length > 0) {
extraLine.pop()
this.setData({
text: initData + '\n' + extraLine.join('\n')
})
}
}
})

rich-text

富文本

支持默认事件,包括:tap、touchstart、touchmove、touchcancel、touchend和longtap

nodes 节点列表 / HTML String
space 显示连续空格

nodes 属性推荐使用 Array 类型,由于组件会将 String 类型转换为 Array 类型,因而性能会有所下降

rich-text是微信小程序的富文本组件,用于渲染部分html标签.

nodes

文本节点:type = text,全局支持classstyle属性,不支持id属性。

// 元素节点:type = node
// name
// attrs
<!-- rich-text.wxml -->
<rich-text nodes="{{nodes}}" bindtap="tap"></rich-text> // rich-text.js
Page({
data: {
nodes: [{
name: 'div',
attrs: {
class: 'div_class',
style: 'line-height: 60px; color: red;'
},
children: [{
type: 'text',
text: 'Hello&nbsp;World!'
}]
}]
},
tap() {
console.log('tap')
}
})

progress

进度条

percent 百分比0~100
show-info 在进度条右侧显示百分比
border-radius 圆角大小
font-size 右侧百分比字体大小
stroke-width 进度条线的宽度
color 进度条颜色
activeColor 已选择的进度条的颜色
backgroundColor 未选择的进度条的颜色
active 进度条从左往右的动画
<progress percent="20" show-info />
<progress percent="40" stroke-width="12" />
<progress percent="60" color="pink" />
<progress percent="80" active />

表单组件

button

按钮

size 按钮的大小
type 按钮的样式类型
plain 按钮是否镂空,背景色透明
disabled 是否禁用
loading 名称前是否带 loading 图标
open-type 微信开放能力
hover-class 指定按钮按下去的样式类
hover-start-time 按住后多久出现点击态
hover-stay-time 手指松开后点击态保留时间
lang 指定返回用户信息的语言
session-from 会话来源
send-message-title 会话内消息卡片标题
send-message-path 会话内消息卡片点击跳转小程序路径
send-message-img 会话内消息卡片图片
bindcontact 客服消息回调
bindgetphonenumber 获取用户手机号回调
app-parameter 打开 APP 时,向 APP 传递的参数

open-type="getUserInfo",用于获取用户信息.

<button bindgetuserinfo="" open-type="getUserInfo" type="primary">用户授权</button>
<button open-type="contact">进入客服会话</button>

checkbox-group

多项选择器,内部由多个checkbox组成

checkbox

多选项目

value 标识
disabled 是否禁用
<checkbox-group bindchange="checkboxChange">
<label class="checkbox" wx:for="{{items}}">
<checkbox value="{{item.name}}" checked="{{item.checked}}" />
{{item.value}}
</label>
</checkbox-group>
Page({
data: {
items: [
{name: 'USA', value: '美国'},
{name: 'CHN', value: '中国', checked: 'true'},
{name: 'BRA', value: '巴西'},
{name: 'JPN', value: '日本'},
{name: 'ENG', value: '英国'},
{name: 'TUR', value: '法国'},
]
},
checkboxChange(e) {
console.log('checkbox发生change事件,携带value值为:', e.detail.value)
}
})

form

表单

将组件内的用户输入的<switch/><input/><checkbox/><slider/><radio/><picker/>
bindsubmit 携带 form 中的数据触发 submit 事件
bindreset 表单重置时会触发 reset 事件
Page({
formSubmit(e) {
console.log('form发生了submit事件,携带数据为:', e.detail.value)
},
formReset() {
console.log('form发生了reset事件')
}
})
<form bindsubmit="formSubmit" bindreset="formReset">

<switch name="switch" />
<slider name="slider" show-value></slider>
<input name="input" placeholder="please input here" />
<radio-group name="radio-group">
<checkbox-group name="checkbox"> <button form-type="submit">Submit</button>
<button form-type="reset">Reset</button>

input

输入框

value 输入框的初始内容
type input 的类型
password 是否是密码类型
placeholder 输入框为空时占位符
placeholder-style 指定 placeholder 的样式
placeholder-class 指定 placeholder 的样式类
disabled 是否禁用
maxlength 最大输入长度
cursor-spacing 指定光标与键盘的距离
auto-focus 自动聚焦,拉起键盘
focus 获取焦点
confirm-type 设置键盘右下角按钮的文字
confirm-hold 点击键盘右下角按钮时是否保持键盘不收起
cursor 指定focus时的光标位置
text 文本输入键盘
number 数字输入键盘
idcard 身份证输入键盘
digit 带小数点的数字键盘

confirm-type 有效值:

send 右下角按钮为“发送”
search 搜索
next 下一个
go 前往
done 完成

label

用来扩展目标组件的可单击区域.

  1. 使用for属性找到对应的id,单击label的区域,会触发对应的控件.
  2. 将目标组件作为子标签直接放在label组件内部.

for优先级高于内部控件,内部有多个控件的时候默认触发第一个控件,用来改进表单组件的可用性,使用for属性找到对应的id.

目前绑定控件:

<button> <checkbox> <radio> <switch>

label主要是用于什么?

对于checkbox组件本身没有文本,就要借助label组件进行扩展,然后就可单击区域,如果没有checkbox放在label标签的内部,那么单击时,就不会被选中.

radio同样没有默认标签文本,所以可用label.对于radio的代码使用了labelfor属性,一个labelfor属性对应于一个radioid.

picker

普通选择器,多列选择器,时间选择器,日期选择器,省市区选择器,默认是普通选择器

// 普通选择器:mode = selector
// 多列选择器:mode = multiSelector
// 时间选择器:mode = time
// 日期选择器:mode = date
// 省市区选择器:mode = region
mode的属性:
单选: selector
多选: multiSelector
时间: time
日期: date
省市: region

picker-view

嵌入页面的滚动选择器

picker组件是基于picker-view组件实现的.

radio-group

单项选择器,是由多个单选项目<radio/>组成.

// radio-group
bindchange // radio
value 标识
checked 当前是否选中
disabled 是否禁用
color radio的颜色

slider

滑动选择器

min 最小值
max 最大值
disabled 是否禁用
value 当前取值
color 背景条的颜色
activeColor 已选择的颜色
backgroundColor 背景条的颜色
show-value 是否显示当前 value
<view class="section section_gap">
<text class="section__title">设置step</text>
<view class="body-view"><slider bindchange="slider2change" step="5" /></view>
</view> <view class="section section_gap">
<text class="section__title">显示当前value</text>
<view class="body-view">
<slider bindchange="slider3change" show-value />
</view>
</view> <view class="section section_gap">
<text class="section__title">设置最小/最大值</text>
<view class="body-view">
<slider bindchange="slider4change" min="50" max="200" show-value />
</view>
</view>
const pageData = {}
for (let i = 1; i < 5; i++) {
(function (index) {
pageData['slider' + index + 'change'] = function (e) {
console.log('slider' + 'index' + '发生 change 事件,携带值为', e.detail.value)
}
}(i))
}
Page(pageData)

min: 最小值
max: 最大值
step: 表示步长
backgroundColor: 表示背景色
activeColor: 表示已经选择的颜色
show-value: 表示是否显示当前value

switch

开关选择器

checked 是否选中
disabled 是否禁用
type 样式,有效值:switch, checkbox
bindchange checked 改变时触发
color switch 的颜色
<view class="body-view">
<switch checked bindchange="switch1Change" />
<switch bindchange="switch2Change" />
</view> Page({
switch1Change(e) {
console.log('switch1 发生 change 事件,携带值为', e.detail.value)
},
switch2Change(e) {
console.log('switch2 发生 change 事件,携带值为', e.detail.value)
}
})

textarea

多行输入框

value 输入框的内容
placeholder 输入框为空时占位符
placeholder-style 指定 placeholder 的样式
placeholder-class 指定 placeholder 的样式类
disabled 是否禁用
maxlength 最大输入长度
auto-focus 自动聚焦,拉起键盘
focus 获取焦点
cursor 指定focus时的光标位置

如果看了觉得不错

点赞!转发!

达叔小生:往后余生,唯独有你

You and me, we are family !

90后帅气小伙,良好的开发习惯;独立思考的能力;主动并且善于沟通

简书博客: 达叔小生

https://www.jianshu.com/u/c785ece603d1

结语

  • 下面我将继续对 其他知识 深入讲解 ,有兴趣可以继续关注
  • 小礼物走一走 or 点赞

全栈开发工程师微信小程序-上(下)的更多相关文章

  1. 全栈开发工程师微信小程序-上(中)

    全栈开发工程师微信小程序-上(中) width: 750rpx; 750rpx代表与屏幕等宽,rpx的缩写responsive pixel,这个单位是可以根据屏幕大小进行自适应调整的像素单位. 小程序 ...

  2. 全栈开发工程师微信小程序 - 上

    全栈开发工程师微信小程序-上 实现swiper组件 swiper 滑块视图容器. indicator-dots 是否显示面板指示点 false indicator-color 指示点颜色 indica ...

  3. 全栈开发工程师微信小程序-中(下)

    全栈开发工程师微信小程序-中(下) 微信小程序视图层 wxml用于描述页面的结构,wxss用于描述页面的样式,组件用于视图的基本组成单元. // 绑定数据 index.wxml <view> ...

  4. 全栈开发工程师微信小程序-中(中)

    全栈开发工程师微信小程序-中(中) 开放能力 open-data 用于展示微信开放的数据 type 开放数据类型 open-gid 当 type="groupName" 时生效, ...

  5. 全栈开发工程师微信小程序-中

    全栈开发工程师微信小程序-中 多媒体及其他的组件 navigator 页面链接 target 在哪个目标上发生跳转,默认当前小程序,可选值self/miniProgram url 当前小程序内的跳转链 ...

  6. 全栈开发工程师微信小程序-下

    app.json { "pages": ["pages/index/index"] } index.wxml <text>Hello World&l ...

  7. 全栈之路-微信小程序-SKU开发(代码)

    SKU开发是小程序中最难的一部分,思路在分析中已经记录过了,这里主要看一下代码的实现,感觉老师写的代码太棒了,很优雅!主要想记录一下写代码的思路,对面向对象编程的实践. 一.代码结构的分析 1.说明几 ...

  8. 全栈之路-微信小程序-SKU开发(分析)

    SKU是整个小程序中最难完成的部分了,好好记录一下SKU,主要是想记录一下 从最开始拿到这个业务到最终完成这个功能期间的思考过程,至于代码什么的,记录也好,不记录也行,再看! 一.从思路说起 1.SK ...

  9. 全栈之路-微信小程序-架构总览

    第一阶段是用来学习小程序开发的,这个就相当于PC端的网站吧,只不过现在依靠微信强大的流量来将业务搬移到小程序中,对于企业来说,这是一种很好的发展方向,既减少了开发成本,又减少了推广成本,小程序是很被人 ...

随机推荐

  1. MySQL数据库开发常见问题及几点优化!

    从一下三个方面考虑: 库表设计 慢 SQL 问题 误操作.程序 bug 时怎么办 一.库表设计 1.1.引擎选择 在 MySQL5.1 中,引入了新的插件式存储引擎体系结构,允许将存储引擎加载到正在运 ...

  2. win10jdk环境变量配置问题:'javac' 不是内部或外部命令,也不是可运行的程序 或批处理文件。

    在编译时报错:'javac' 不是内部或外部命令,也不是可运行的程序 或批处理文件. 原因1:配置Path的时候使用%JAVA_HOME%相对路径配置. 解决:把Path路径改为绝对路径(例:D:\P ...

  3. JS阻止事件冒泡的3种方法之间的不同

    什么是JS事件冒泡?: 在一个对象上触发某类事件(比如单击onclick事件),如果此对象定义了此事件的处理程序,那么此事件就会调用这个处理程序,如果没有定义此事件处理程序或者事件返回true,那么这 ...

  4. mysql 主从库同步

    #主库修改my.ini [mysqld] server log-bin=mysql-bin binlog-do-db=demo #从库修改my.ini [mysqld] server replicat ...

  5. 重写toFixed()方法

    1.直接在原型上修改,仍然使用元调用方式 Number.prototype.toFixed = function (exponent) { return parseInt(this * Math.po ...

  6. java+phantomjs实现动态网页抓取

    1.下载地址:http://phantomjs.org/download.html 2.java代码 public void getHtml(String url) { HTML="&quo ...

  7. HTTP协议 与 TCP协议 的区别

    TCP协议是传输层协议,主要解决数据如何在网络中传输,而HTTP是应用层协议,主要解决如何包装数据. TCP/IP和HTTP协议的关系,从本质上来说,二者没有可比性,我们在传输数据时,可以只使用(传输 ...

  8. npm遇到的问题--npm install 执行报错 /bin/git submodule update -q --init --recursive

    1.执行npm i 安装依赖时,报错:cannot read property 'match' of undefined 据说是npm本地缓存导致 解决方案: rm -rf package-lock. ...

  9. update_or_create()

    update_or_create(默认值=无,** kwargs)¶ 使用给定更新对象的便捷方法,kwargs必要时创建新对象.这defaults是用于更新对象的(字段,值)对的字典.值中的值defa ...

  10. centos 下Python独立虚拟环境创建

    virtualenv Python有着庞大的开源社区的支持,很自然就产生这么一个问题:第三方包参差不齐,如果我们想在服务器测试,或者升级某个包,就会导致生产环境产生杂乱,多余的第三方依赖包. virt ...