550 小程序阶段3 常见内置组件:Text,Button,View,Image,Input,scroll,共同属性
Text组件
<!--pages/text/text.wxml-->
<!-- 1.基本使用 -->
<text>Hello World\n</text>
<text>你好小程序\n</text>
<!-- 2.seletable: true -->
<!-- 默认情况下,text中的文本长按是不能选中的 -->
<!-- 【模拟器中,不能选中,真机调试可以选中。】 -->
<text selectable='{{true}}'>Hello 哈哈哈\n</text>
<text selectable>Hello 哈哈哈\n</text>
<!-- 3.space: 决定文本空格的大小 -->
<text>Hello World\n</text>
<text space='nbsp'>Hello World\n</text>
<text space='ensp'>Hello World\n</text>
<text space='emsp'>Hello World\n</text>
<!-- 4.decode属性: 是否解码文本 -->
<text decode>5 > 3</text>
Button组件
<!--pages/button/button.wxml-->
<text>pages/button/button.wxml</text>
<!-- 1.button基本使用: block -->
<button>按钮</button>
<!-- 2.size: mini/default -->
<button size='mini'>按钮</button>
<!-- 3.type: primary/default/warn -->
<view>
<button type='primary' size='mini'>主要</button>
<button type='default' size='mini'>默认</button>
<button type='warn' size='mini'>警告</button>
</view>
<!-- 4.plain: true背景透明 【镂空】 -->
<view>
<button size='mini' plain="{{true}}">按钮</button>
</view>
<!-- 5.disable: true不可以和用户交互 -->
<view>
<button size='mini' disabled='{{true}}'>按钮</button>
</view>
<!-- 6.loading 【加载效果】 -->
<view>
<button size='mini' loading='{{true}}'>按钮</button>
</view>
<!-- 7.hover-class: 鼠标按下时的样式 -->
<view>
<button size='mini' hover-class='hover'>按钮</button>
</view>
<!-- 8.open-type属性 -->
<view>
<button size='mini' open-type='contact' bindcontact='onBindContact'>客服会话</button>
<button size='mini' open-type='share'>小程序分享</button>
<button size='mini' open-type='getUserInfo' bindgetuserinfo='onGetUserInfo'>用户信息</button>
</view>
// pages/button/button.js
Page({
/**
* 页面的初始数据
*/
data: {
},
onBindContact() {
console.log('打开了客服会话')
},
onGetUserInfo(e) {
console.log('获取用户的信息', e)
}
})
.hover {
background: red;
}
View组件
<!-- 1.view的基本使用 -->
<view class='box'>哈哈哈</view>
<view>呵呵呵</view>
<!-- 2.hover-class: 当用户按下组件时,显示的样式 -->
<view class='box1'
hover-class='hover-view'
hover-stay-time="{{0}}">
box1
</view>
<!-- 3.hover-stop-propagation: 阻止祖先组件的点击态 -->
<view class='box2' hover-class='box2-hover'>
<view class='box1'
hover-class='hover-view'
hover-stay-time="{{0}}"
>
box1
</view>
</view>
/* pages/view/view.wxss */
.box {
background: red;
}
.box1 {
width: 100px;
height: 100px;
background: #6cc;
}
.hover-view {
background: orange;
font-size: 30px;
}
.box2 {
width: 200px;
height: 200px;
background: #66e;
margin-top: 20px;
}
.box2-hover {
background: green;
}
Image组件
https://developers.weixin.qq.com/miniprogram/dev/component/image.html
<!-- 1.image的基本使用 -->
<!--
重点:
1.image组件可以写成单标签,也可以修成双标签
2.image组件默认有自己的大小: 320x240
3.image组件时一个行内块级元素(inline-block)
-->
<!-- <image/> -->
<!-- 2.src: 本地路径(相对路径/绝对路径)/远程地址 -->
<image src='../../assets/test/hahaha.jpeg'/>
<image src='/assets/test/hahaha.jpeg'/>
<image src='https://res.wx.qq.com/wxdoc/dist/assets/img/0.4cb08bb4.jpg'/>
<!-- 补充: 相册中的图片 -->
<button bindtap='handleChooseAlbum'>选中图片</button>
<image src="{{imagePath}}"/>
<!-- 3.bindload: 监听图片加载完成 -->
<!-- lazy-load: 图片的懒加载 -->
<view>------------------------------</view>
<image wx:for="{{1}}"
src="https://res.wx.qq.com/wxdoc/dist/assets/img/0.4cb08bb4.jpg"
bindload='handleImageLoad'
lazy-load/>
<!-- 4.show-menu-by-longpress: 长按图片出现识别小程序码 -->
<image show-menu-by-longpress
src="https://res.wx.qq.com/wxdoc/dist/assets/img/0.4cb08bb4.jpg"/>
// pages/image/image.js
Page({
data: {
imagePath: ''
},
handleChooseAlbum() {
// 系统API, 让用户在相册中选择图片(或者拍照)
wx.chooseImage({
success: (res) => {
// 1.取出路径
const path = res.tempFilePaths[0]
// 2.设置imagePath
// this: undefined
this.setData({
imagePath: path
})
},
})
},
handleImageLoad() {
console.log('图片加载完成')
}
})
input
<!-- 1.input的基本使用 -->
<input/>
<!-- 2.value: input中的默认值 -->
<input value='哈哈哈'/>
<!-- 3.type: 决定键盘类型(文本输入键盘/数字/身份证) -->
<input type='number'/>
<!-- 4.password: 暗文 -->
<input password/>
<!-- 5.placeholder: 占位文字 -->
<input placeholder='请输入内容'/>
<!-- 6.input绑定事件 -->
<input bindinput='handleInput'
bindfocus='handleFocus'
bindblur='handleBlur'/>
// pages/input/input.js
Page({
data: {
},
handleInput(event) {
console.log('用户输入内容:', event)
},
handleFocus(event) {
console.log('input获取焦点:', event)
},
handleBlur(event) {
console.log('input失去焦点:', event)
}
})
scroll-view组件介绍
<!-- 1.水平滚动: scroll-x -->
<!-- view是块级元素 -->
<scroll-view class='container1' scroll-x>
<view wx:for="{{10}}" class='item1'>{{item}}</view>
</scroll-view>
<!-- 2.垂直滚动: scroll-y -->
<scroll-view class='container2' scroll-y>
<view wx:for="{{10}}" class='item2'>{{item}}</view>
</scroll-view>
<!-- 3.其他补充 -->
<scroll-view class='container2'
scroll-y
bindscroll="handleScroll">
<view wx:for="{{10}}" class='item2'>{{item}}</view>
</scroll-view>
/* pages/scroll/scroll.wxss */
.container1 {
background: #ccc;
white-space: nowrap;
}
.item1 {
width: 100px;
height: 100px;
background: #6cc;
margin: 10px;
display: inline-block;
}
.container2 {
background: pink;
height: 200px;
margin-top: 20px;
}
.item2 {
height: 100px;
background: yellowgreen;
margin: 10px;
}
// pages/scroll/scroll.js
Page({
data: {
},
handleScroll(event) {
console.log('正在滚动', event)
}
})
共同属性